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 .