Переместить архивы GZ с определенным содержанием

После восстановления моего жесткого диска с помощью PhotoRec у меня есть папка с архивами 36 500 GZ. Из них около 200 очень важны для меня.

Каждый из этих архивов содержит ровно один архив TAR. Эти архивы TAR содержат папки и, среди прочего, файлы следующих типов файлов:

  • doc
  • docx
  • xls
  • rtf
  • pdf
  • ppt
  • ods
  • odt
  • jpg

Можно ли создать сценарий оболочки, который

  1. открывает каждый из этих архивов GZ
  2. проверяет наличие в нем архива TAR и - если да
  3. открывает архив TAR
  4. проверяет если архив TAR содержит один из заданных типов файлов и - если да
  5. перемещает архив GZ, содержащий TAR, в заданный каталог

, так как я начинающий, когда дело доходит до Сценарии оболочки, я был бы очень благодарен за любую подсказку или указатель в правильном направлении о том, как такой сценарий может выглядеть.

3
задан 20 November 2013 в 00:25

1 ответ

Это не проверено. Я добавил туда комментарий по безопасности (поэтому он просто перекликается с файлом gz, а не смещает его), но когда вы уверены, что он работает, продолжайте.

for f in *.gz; do
    win=$(tar -ztvf "$f" | grep -iE 'doc|docx|xls|rtf|pdf|ppt|ods|odt|jpg | wc -l)
    if [[ $win -gt "0" ]]; then
        # mv "$f" /other/directory
        echo "$f contains one of my files!"
    fi
done
0
ответ дан 20 November 2013 в 00:25

Другие вопросы по тегам:

Похожие вопросы: