J'ai un répertoire, dir1
qui contient de nombreux fichiers dont les noms se terminent par .jpg
ou .png
. Je veux copier tous les .png
fichiers dans dir2
qui est vide.
Cette commande fonctionne :
find dir1 -name '*.png' -exec cp {} dir2 ;
mais cette commande ne :
find dir1 -name '*.png' -exec cp {} dir2 +
find: missing argument to `-exec'
J'ai aussi essayé :
find dir1 -name '*.png' -exec cp {} -t dir2 +
find: missing argument to `-exec'
et :
find dir1 -name '*.png' -exec cp {} dir2 +
find: missing argument to `-exec'
Après avoir regardé cette page, j'ai même essayé :
find dir1 -name '*.png' -exec cp {} dir2 {} +
find: Only one instance of {} is supported with -exec ... +
Cette page indique que :
-exec {} + a été ajouté dans [version] 4.2.12 en 2005
Ma version de find
est 4.4.2.
Qu'est-ce que je fais de mal ?
Réponse acceptée :
Grâce à 'steeldriver', j'ai compris que la réponse est parce que la spécification POSIX interdit quoi que ce soit d'être entre {}
et +
après -exec
.