Приостановка выполнения скрипта до выхода пользователя из `менее`

Вы можете использовать опцию -u/--updateв сочетании с xargs. Я только что попробовал и, чтобы доказать, что это работает, я дал аргументы имени файла tarодин -на -один, используяxargs -n 1:

find top_of_tree/ -type f | xargs -n 1 tar -uf archive.tar

Конечно, это всего лишь доказательство концепции. В вашем случае, вероятно, более практично разрешить xargsразделять список аргументов на более крупные части, которые не превышают ограничение длины аргумента, чтобы избежать большого количества вызововtar:

find top_of_tree/ -type f | xargs tar -uf archive.tar

Условием является то, что все реализации tarна ваших платформах поддерживают хотя бы один из флагов -u/--update.

РЕДАКТИРОВАТЬ :флаги -u/--updateпозволяют tarсоздавать и добавлять в архив.

Только что заметил, что, к сожалению, нельзя обновлять сжатые архивы (tgz, созданные с флагом -c). Однако вы можете во что бы то ни стало сначала создать несжатый -архив, а затем сжать результаты.

Кроме того, вас не должно смущать, что я использую флаги для tarс дефисом ('-' символ ). Он принимает обе формы. В моем примере -ufбудет эквивалентно ufв вашем.

Что касается опции -,это, вероятно, не задокументировано на справочной странице tar, потому что это очень распространенное соглашение Unix для инструментов командной строки, которые работают как с потоками, так и с именованными файлами. -обычно является специальным аргументом для фильтров и называет стандартный входной поток файлом.

0
01.03.2021, 05:07
1 ответ

Использование подстановки процесса с флагом -f(также--force)работало:

${PAGER:-less} -f <(echo "$contents")

0
18.03.2021, 22:28

Теги

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