Короче
Вы можете сделать это с помощью поиска одной строки + распаковать.
find . -name "*.zip" -type f -exec unzip -jd "images/{}" "{}" "*.jpg" "*.png" "*.gif" \;
Подробнее
unzip
позволяет указать нужные файлы:
unzip archive.zip "*.jpg" "*.png" "*.gif"
И -d
целевой каталог:
unzip -d images/ archive.zip "*.jpg" "*.png" "*.gif"
Объедините это с find
, и вы сможете извлечь все изображения во всех почтовых индексах:
find . -name "*.zip" -type f -exec unzip -d images/ {} "*.jpg" "*.png" "*.gif" \;
Используя unzip -j
для ненужного извлечения внутренней структуры каталогов zip, мы можем сделать все это одной командой. Это дает вам список плоских изображений, разделенных именем zip, который вы хотите использовать как одну строку.
find . -name "*.zip" -type f -exec unzip -jd "images/{}" "{}" "*.jpg" "*.png" "*.gif" \;
Ограничением является то, что unzip -d
не создаст более одного нового уровня каталогов, поэтому сначала просто mkdir images
. Наслаждайтесь.