Как мы можем GZip каждый файл отдельно?
Я не хочу иметь все файлы в большой конфигурации.
Как мы можем GZip каждый файл отдельно?
Я не хочу иметь все файлы в большой конфигурации.
Вы можете использовать gzip *
Примечание:
-k
(--keep
) для сохранения исходных файлов.Простой и очень быстрый ответ, который будет использовать все ваши ядра процессора параллельно:
parallel gzip ::: *
GNU Parallel - это фантастический инструмент, который следует использовать гораздо чаще в этом мире, где процессоры получают только больше ядер, а не большую скорость. Есть множество примеров, которые мы все хорошо бы потратили на 10 минут, чтобы прочитать... здесь
Спустя семь лет этот высокооплачиваемый комментарий по-прежнему не имеет собственного полноценного ответа, поэтому я продвигаю его сейчас:
gzip -r .
Это имеет два преимущества по сравнению с принятым в настоящее время ответом: он работает рекурсивно, если есть какие-либо подкаталоги, и он не будет терпеть неудачу из Argument list too long
, если количество файлов очень велико.
Если вы хотите gzip каждый файл рекурсивно, вы можете использовать find piped для xargs:
$ find . -type f -print0 | xargs -0r gzip
Попробуйте петлю
$ for file in *; do gzip "$file"; done
Или, если у вас есть pigz (утилита gzip, которая распараллеливает сжатие на нескольких процессорах и ядрах)
pigz *