Não consigo concatenar vários arquivos em diretórios diferentes

Não consigo concatenar vários arquivos em diretórios diferentes

Estou tentando concatenar vários arquivos que estão em diretórios diferentes usando o seguinte comando:

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

No entanto, não parece estar funcionando, pois estou recebendo uma resposta como:

find: missing argument to `-exec'

Há algo que eu possa ter perdido?

Obrigado!

Responder1

Você está usando aspas unicode: ‘’em vez de aspas normais ( ''). Tente este comando:

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

Porém, se combined.textjá existir, irá imprimir um aviso, pois combined.textserá criado antes do lançamento finde será encontrado pelo findcomando:

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

Você pode evitar isso com:

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

informação relacionada