Ho una directory, dir1
che contiene molti file i cui nomi terminano con .jpg
o .png
. Voglio copiare tutti i .png
file in dir2
che è vuoto.
Questo comando funziona:
find dir1 -name '*.png' -exec cp {} dir2 ;
ma questo comando no:
find dir1 -name '*.png' -exec cp {} dir2 +
find: missing argument to `-exec'
Ho anche provato:
find dir1 -name '*.png' -exec cp {} -t dir2 +
find: missing argument to `-exec'
e:
find dir1 -name '*.png' -exec cp {} dir2 +
find: missing argument to `-exec'
Dopo aver guardato questa pagina, ho anche provato:
find dir1 -name '*.png' -exec cp {} dir2 {} +
find: Only one instance of {} is supported with -exec ... +
Questa pagina dice che:
-exec {} + è stato aggiunto in [versione] 4.2.12 nel 2005
La mia versione di find
è 4.4.2.
Cosa sbaglio?
Risposta accettata:
Grazie a "steeldriver", ho capito che la risposta è perché la specifica POSIX vieta a qualsiasi cosa di trovarsi tra {}
e +
dopo -exec
.