Похоже, не удаётся объединить несколько файлов в разных каталогах.

Похоже, не удаётся объединить несколько файлов в разных каталогах.

Я пытаюсь объединить несколько файлов, находящихся в разных каталогах, с помощью следующей команды:

~$ find . -name ‘*.text’ -exec cat {} >> combined.text \;

Однако, похоже, это не работает, поскольку я получаю ответ следующего содержания:

find: missing argument to `-exec'

Может быть я что-то упустил?

Спасибо!

решение1

Вы используете кавычки unicode: ‘’вместо обычных кавычек ( ''). Попробуйте вместо этого эту команду:

find . -name '*.text' -exec cat {} +  >> combined.text

Однако если он combined.textуже существует, то будет выведено предупреждение, поскольку combined.textон будет создан перед запуском findи может быть найден командой find:

$ find . -name '*.text' -exec cat {} +  >> combined.text
cat: ./combined.text: input file is output file

Избежать этого можно с помощью:

find . -name '*.text' ! -name combined.text -exec cat {} + >> combined.text

Связанный контент