Назад | Перейти на главную страницу

7z все файлы в каталоге, удалить оригиналы

У меня есть несколько каталогов (Linux-машина), заполненных сжимаемыми файлами * .foo.

Прямо сейчас у меня есть сценарий, который gzip *.foo каждый файл сжимается с помощью gzip в отдельный файл .gz, а оригинал удаляется. 7z сожмет эти файлы вдвое меньше, чем gzip, поэтому я бы хотел перейти на это.

Как я могу использовать 7z, чтобы начать работу с таким каталогом

file1.foo
file2.foo
file3.foo

и в итоге

file1.foo.7z
file2.foo.7z
file3.foo.7z

Или похожие. Я не хочу, чтобы все файлы были в одном архиве .7z.

for i in *.foo; do 7za a $i.7z $i; if [ $? -eq 0 ]; then rm $i; fi; done

Попробуйте:

find -type f -maxdepth 1 -name "*.foo" -print0 | xargs -0 -I % 7z a %.7z %

но это оставит исходный файл после его сжатия.