目的は、多くのzipファイルを解凍し、結果ファイルの名前を元のアーカイブ名に変更することです。
多くのzipファイルを含むフォルダの場合、ほとんどの名前というファイルが含まれていますが、bla.txt
もちろんいくつかの例外もあります。私たちが知っているように、すべてのファイルにはtxtファイルであるファイルがあります。
./zips/
a.zip - contains bla.txt
b.zip - contains bla.txt
c.zip - contains somethingelse.txt
d.zip - contains bla.txt
... - ...
出力は
./zips/
a.txt
b.txt
c.txt
d.txt
...
すべてを抽出し、多数のフォルダを残した最高の最新写真:
for z in *.zip; do unzip $z -d $(echo 'dir_'$z); done
たぶん良い
for z in *.zip; do unzip $z; mv 'content_name.txt' $z; done
ところで、コンテンツ名はどのようにして得られますか?
ベストアンサー1
この-d
アイデアを引き続き使用して、抽出されたファイルの名前を希望の「zip名減算zip + txt」に変更できます。
mkdir tmp
for f in *.zip; do unzip "$f" -d tmp && mv tmp/* "${f%.zip}.txt"; done
rmdir tmp
あるいは、unzipの出力を適切な名前のファイルにパイプすることもできます。
for f in *.zip; do unzip -p "$f" > "${f%.zip}.txt"; done