Вы также можете использовать pv
, «просмотрщик каналов», чтобы отслеживать, сколько и как быстро данные обрабатываются и / или выводятся. по процессу.
В Debian / Ubuntu вам необходимо установить пакет pv
, чтобы использовать его.
pv a.img.gz | gzip -cd > a.img
даст вам общую и текущую пропускную способность gzip
, а также индикатор выполнения и оценку, когда gzip
завершит обработку входного файла (при условии, что его скорость останется прежней. одно и тоже).
Вы также можете контролировать вывод…
gzip -cd a.img.gz | pv > a.img
… или даже комбинировать две команды и контролировать ввод и вывод одновременно:
pv -cN input a.img.gz | gzip -cd | pv -cN output > a.img
(В этом случае вам понадобятся pv
-c
параметр, чтобы два индикатора выполнения не перезаписывали друг друга, и -N
, чтобы дать им (произвольные) имена, чтобы знать, что есть что.)
Предполагая, что вы хотите рекурсивно сделать это со всеми обычными файлами в каталоге верхнего -уровня и ниже$topdir
:
find "$topdir" -type f -exec 7za a {} {} \;
Для одного каталога, содержащего только файлов, которые вы хотите сжать, вы должны использовать
for pathname in "$topdir"/*; do
7za a "$pathname" "$pathname"
done
Разница здесь в том, что скрытые файлы не будут сжаты. Если вы включите опцию оболочки dotglob
в bash
с помощью shopt -s dotglob
, то цикл будет включать скрытые имена.
С помощью find
(, что означало бы меньше ввода ), вы могли бы работать с файлами в одном каталоге с помощью
find "$topdir" -maxdepth 1 -type f -exec 7za a {} {} \;