GNU/Linux >> Linux Esercitazione >  >> Linux

Perché Find non accetta '-exec Cp {} Dir +'?

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 .


Linux
  1. Perché un lungo ritardo dopo il comando non trovato?

  2. Perché è Rm -rf e non Rmdir -rf?

  3. Profondità massima equivalente per Find in Aix?

  4. trova:comando non trovato

  5. Perché find -exec mv {} ./target/ + non funziona?

Perché "trova" non mostra questo file??

Perché "cancella" non cancella l'intero schermo?

Perché è così difficile trovare un file in Ubuntu?

perché sftp rmdir non funziona?

perché eliminare la cronologia di bash non è sufficiente?

Perché non bloccare l'ICMP?