Подтвердить что ты не робот

Сжатие нескольких файлов по отдельности с помощью Gzip

У меня есть несколько каталогов, которые выглядят так:

dir1/
  |_foo.txt
  |_bar.txt
dir2/
  |_qux.txt
  |_bar.txt

Для каждого из этого каталога я хочу сжать файлы внутри него в формате *.gz затем удалите несжатые. Поэтому, наконец, мы надеемся получить что-то вроде этого:

 dir1/
   |_foo.gz
   |_bar.gz
 dir2/
   |_qux.gz
   |_bar.gz

Есть ли простой способ Unix?

4b9b3361

Ответ 1

gzip */*.txt

Но расширение для каждого файла будет .txt.gz, поскольку gzip использует его, чтобы узнать исходное имя файла.

Ответ 2

Следующие действия будут работать, даже если у вас есть подкаталоги. Например. dir1/dir2/.../foo.txt

find . -type f -name "*.txt" -exec gzip {} \;

Ответ 3

gzip -r dir1 dir2