Это должно работать с именами файлов, содержащими пробелы, новые строки, апострофы и кавычки (все это возможно в файловых системах UNIX):
find . -maxdepth 1 -type f -print0 |
sort -zn |
xargs -0 sh -c 'pdftk "$@" cat output combinewd2.pdf' "$0"
Это может быть излишним по сравнению с принятым ответом, если вы знаете, что работаете с простыми именами файлов.
Но если вы пишете сценарий, который будет использоваться снова в будущем, желательно, чтобы он не взорвался однажды, когда встретит необычные (но действительные) входные данные.
По сути, это адаптация ответа andrewdotn, который завершает входные файлы нулевым байтом, а не новой строкой, следовательно, сохраняются имена файлов, которые содержат один или несколько символов новой строки.
Соответствующие опции -print0
, -z
и -0
сообщают каждой из программ, что ввод/вывод должен быть разделен нулевым байтом. Три разные программы, три разных аргумента!
person
joeytwiddle
schedule
24.02.2016