Как я могу сжать файлы с именем вывода, совпадающим с именем родительской папки?

find . -type f -exec du -m {} \; | sort -nr | head -10

Выполните du для каждого обычного файла и укажите желаемый параметр, например -m для мегабайта

1
29.04.2017, 14:35
1 ответ

В итоге я использовал следующий bash-скрипт:

for d in */ ; do
   tar -c -I lbzip2 -f "${d%/}.tar.bz2" "$d"
done

Некоторые комментарии:

  • for d in */ ; do выполнить цикл по каталогам (Как выполнить цикл по каталогам в bash?)
  • ${d%/} удаляет косую черту в конце имени папки (он вернет $d без изменений, если косая черта не стояла в конце).
  • Это создает архив как для подкаталогов текущих каталогов, так и для символических ссылок в текущем каталоге, которые указывают на существующий каталог.
1
27.01.2020, 23:45

Теги

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