LINUX.ORG.RU

История изменений

Исправление kostik87, (текущая версия) :

Вот здесь:

find -type d ! -name "." | while read i; do
  tar -czvf "$(basename $i).tar.gz" "$i";
done
find найдёт директории на всех уровнях вложенности.

Т.е. если у вас структура директорий выглядит так:

root_dir/
   dir 1/
      sub dir 1/
   dir 2/
      sub dir 2/
         sub sub dir 2/
   dir 3/
      sub dir 3/
то, как ясно, будут созданы не три архива, а 7:
root_dir/
   dir 1/
      sub dir 1/
      sub dir 1.tar.gz
   dir 1.tar.gz
   dir 2/
      sub dir 2/
      sub dir 2.tar.gz
         sub sub dir 2/
         sub dir 1.tar.gz
   dir 2.tar.gz
   dir 3/
      sub dir 3/
      sub dir 3.tar.gz
   dir 3.tar.gz

Исходная версия kostik87, :

Вот здесь:

find -type d ! -name "." | while read i; do
  tar -czvf "$(basename $i).tar.gz" "$i";
done
find найдёт директории на всех уровнях вложенности.

Т.е. если у вас структура директорий выглядит так:

root_dir/
   dir 1/
      sub dir 1/
   dir 2/
      sub dir 2/
         sub sub dir 2/
   dir 3/
      sub dir 3/
то, как ясно будут созданы не три архива, а 7:
root_dir/
   dir 1/
      sub dir 1/
      sub dir 1.tar.gz
   dir 1.tar.gz
   dir 2/
      sub dir 2/
      sub dir 2.tar.gz
         sub sub dir 2/
         sub dir 1.tar.gz
   dir 2.tar.gz
   dir 3/
      sub dir 3/
      sub dir 3.tar.gz
   dir 3.tar.gz