Я пытаюсь объединить несколько файлов, находящихся в разных каталогах, с помощью следующей команды:
~$ 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