У меня есть несколько каталогов (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 %
но это оставит исходный файл после его сжатия.