скрипт bash для итерации каталогов и создания файлов tar - PullRequest
0 голосов
/ 05 июня 2018

Я искал способы создания bash-файла, который будет перебирать все папки в каталоге, и создавать файл tar.gz для каждого из этих каталогов.(Это используется специально для сайта Ubuntu / Drupal - но может быть полезно в других сценариях.)

Ответы [ 2 ]

0 голосов
/ 05 июня 2018

Вы можете использовать find для поиска каталогов между mindepth и maxdepth, а затем создать гудки

find .  -maxdepth 1 -mindepth 1 -type d -exec tar czf $(basename {}).tar.gz {} \;
0 голосов
/ 05 июня 2018

После долгих поисков, комбинирования сценариев и тестирования, я обнаружил, что следующее работает очень хорошо при запуске из основного каталога.Это может немного отличаться в зависимости от версии bash, какой версии ubuntu и где вы планируете или запускаете файл bash.(Запустите, введя sh createDirectoryTarFiles.sh в командной строке из родительской папки.) Строка эха не нужна - только для просмотра.

   for D in *; do
      if [ -d "${D}" ]; then
         tx="${D%????}"
         echo "Directory is ${D} - and name of file would be $tx"
         tar -zcvf "$tx.tar.gz" "${D}"
      fi
   done
...