Альтернатива с find и xargs, потому что парсить не нужноls
:
export numfile="$(mktemp)"
echo 0 > "$numfile"
find lots_of_files/ -name '*.pdf' -print0 \
| sort -V -z \
| xargs -0r -L 1000 \
bash -c 'NUM=$(cat "$numfile") ; ((NUM++)); echo "$NUM" > "$numfile"; \
tar -czf archive_$(printf '%03d' "$NUM" ).tar.gz "$@"' tar_in_batches
rm "$numfile"
unset numfile
Ваши архивы будут красиво пронумерованы с ведущими нулями, а файлы в архивах также будут расположены в правильном порядке.
Эта версия не сломается, если в ваших именах файлов есть пробелы или символы новой строки.
Параметр-e
сообщает xterm, что нужно выполнить только эту команду. Если вы не укажете опцию -e
, xterm запустит оболочку. В любом случае xterm создает окно, показывающее вывод команды или оболочки.
Оболочки запрашивают ввод и не завершают работу до тех пор, пока ввод не закончится.
Если команда, указанная с помощью -e
, завершается быстро (, например, не запрашивает ввод ), окно, созданное с помощью -e
, быстро закрывается.
Вы можете сохранить окно, созданное для -e
, различными способами:
-hold
(, которая сохраняет окно после выхода из команды ). (Опция-geometry
не зависит от опции-e
).