web-dev-qa-db-ja.com

ファイルのバッチを解凍する

やってみると

 unzip filename.Zip

できます。ただし、一連のZipファイルを解凍する必要があります。

なぜですか:

 find . -name "*.Zip" -print0 | xargs -0 unzip

または

 ls *.Zip | xargs unzip

機能していませんか?

どちらの場合も、「注意:ファイル名が一致しません:」というメッセージが表示されます。

34
jeannoburto

次のコマンドを発行できます。

$ unzip '*.Zip'

参照 については、こちらをご覧ください。

48
vfbsilva

コマンドはすべてのファイルを同じコマンドラインに詰め込むため、機能しません。これはほとんどのプログラムで機能しますが、unzipは最初の引数をZipファイルとして受け取り、最初の引数以降はZipファイルとして抽出します。ファイルごとにコマンドを1回実行する必要があります。

find . -name "*.Zip" -print0 | xargs -0 -n1 unzip

または

find . -name '*.Zip' -exec unzip {} \;
28
Kevin

Bashでは、次の操作も実行できます。

for i in *.Zip; do
    unzip "$i"
done

また、unzip-dスイッチを使用すると、出力を別の場所にターゲットできます。

例えば:

uzdir=/path/to/unzips
for i in *.Zip; do
    [ -d "$uzdir/$i" ] || mkdir -p "$uzdir/$i"
    unzip "$i" -d "$uzdir/$i"
done
6
slm

上記のループよりもはるかに簡単な解決策があります。ディレクトリ-dフラグを使用します。

unzip -o somefiles.Zip -d $directoryPath
2
Aditya Mittal