xterm устанавливает геометрию, а затем выполняет скрипт

Альтернатива с 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

Ваши архивы будут красиво пронумерованы с ведущими нулями, а файлы в архивах также будут расположены в правильном порядке.

Эта версия не сломается, если в ваших именах файлов есть пробелы или символы новой строки.

0
29.11.2021, 16:14
1 ответ

Параметр-eсообщает xterm, что нужно выполнить только эту команду. Если вы не укажете опцию -e, xterm запустит оболочку. В любом случае xterm создает окно, показывающее вывод команды или оболочки.

Оболочки запрашивают ввод и не завершают работу до тех пор, пока ввод не закончится.

Если команда, указанная с помощью -e, завершается быстро (, например, не запрашивает ввод ), окно, созданное с помощью -e, быстро закрывается.

Вы можете сохранить окно, созданное для -e, различными способами:

  • заставить командную строку для ввода (ждать ответа пользователя)
  • заставить команду выполняться долго
  • используйте опцию-hold(, которая сохраняет окно после выхода из команды ).

(Опция-geometryне зависит от опции-e).

3
29.11.2021, 19:18

Теги

Похожие вопросы