Ich habe ein Verzeichnis, dir1
die viele Dateien enthält, deren Namen entweder auf .jpg
enden oder .png
. Ich möchte alle .png
kopieren Dateien nach dir2
die leer ist.
Dieser Befehl funktioniert:
find dir1 -name '*.png' -exec cp {} dir2 ;
aber dieser Befehl nicht:
find dir1 -name '*.png' -exec cp {} dir2 +
find: missing argument to `-exec'
Ich habe auch versucht:
find dir1 -name '*.png' -exec cp {} -t dir2 +
find: missing argument to `-exec'
und:
find dir1 -name '*.png' -exec cp {} dir2 +
find: missing argument to `-exec'
Nachdem ich mir diese Seite angesehen hatte, versuchte ich sogar:
find dir1 -name '*.png' -exec cp {} dir2 {} +
find: Only one instance of {} is supported with -exec ... +
Auf dieser Seite steht:
-exec {} + wurde 2005 in [Version] 4.2.12 hinzugefügt
Meine Version von find
ist 4.4.2.
Was mache ich falsch?
Akzeptierte Antwort:
Dank „steeldriver“ habe ich herausgefunden, dass die Antwort darin besteht, dass die POSIX-Spezifikation alles verbietet, was zwischen {}
steht und +
nach -exec
.