200以上のファイルを含む.zip
フォルダがあります。各ファイルには、複数の種類のアーカイブを含むフォルダが1つしかありません(場合によっては、このフォルダが欠落しています)。その中から.jpg
orファイルだけを抽出したいと思います.jpeg
。ファイルの構造はzip
次のとおりです。
AAAA-99999-2015.zip
AAAA-99999-2015 (optional)
AAAA-99999-2015.jpg (or .jpeg)
AAAA-99999-2015.prj
AAAA-99999-2015.ecw
readme.txt
¿200個のアーカイブをすべて手動で開かずにこのタスクを自動化するにはどうすればよいですか?
ベストアンサー1
あなたはこのようなことをすることができます
find . -type f -iname \*zip -print0 | xargs -0 --max-args=1 --replace unzip {} \*.jpg \*.jpeg
次に、現在のフォルダとサブフォルダで "* .zip"というファイルを見つけて、各ファイルに対して個別に--max-args=1
()コマンドを呼び出して追加し、抽出するファイルを選択します。unzip
\*.jpg \*.jpeg
*.jpeg
(およびファイルをすべて選択したが、*.jpg
一部が存在しない場合は警告が表示されることがあります。unzip
これは無視してかまいません。)
まず、何が起こるかをテストするには、次のように挿入しますecho
。
find . -type f -iname \*zip -print0 | xargs -0 --max-args=1 --replace echo unzip {} \*.jpg \*.jpeg
ZIPファイルの場所に関係なく、現在のフォルダ内のすべてのファイルを抽出するには、次のオプションを追加-j
しますunzip
。
find . -type f -iname \*zip -print0 | xargs -0 --max-args=1 --replace unzip -j {} \*.jpg \*.jpeg
-d foldername
にアクセスすることもできます-j
。