Ich versuche, mehrere Dateien, die sich in verschiedenen Verzeichnissen befinden, mit dem folgenden Befehl miteinander zu verknüpfen:
~$ find . -name ‘*.text’ -exec cat {} >> combined.text \;
Es scheint jedoch nicht zu funktionieren, da ich folgende Antwort erhalte:
find: missing argument to `-exec'
Habe ich möglicherweise etwas übersehen?
Danke schön!
Antwort1
Sie verwenden Unicode-Anführungszeichen: ‘’
anstelle von normalen Anführungszeichen ( ''
). Versuchen Sie stattdessen diesen Befehl:
find . -name '*.text' -exec cat {} + >> combined.text
Wenn es jedoch combined.text
bereits vorhanden ist, wird eine Warnung ausgegeben, da combined.text
es vor dem Start erstellt wird find
und daher durch den folgenden Befehl gefunden werden kann find
:
$ find . -name '*.text' -exec cat {} + >> combined.text
cat: ./combined.text: input file is output file
Dies können Sie vermeiden, indem Sie:
find . -name '*.text' ! -name combined.text -exec cat {} + >> combined.text