Pb avec find -exec mv ?

Résolu/Fermé
duddy67 - 6 févr. 2009 à 21:31
 duddy67 - 6 févr. 2009 à 21:46
Bonjour,

Je veux déplacer tous les fichiers txt d'un répertoire vers un autre (il y en a 9).
J'utilise la commande suivante:

$ find /path/dir1/ -name "*.txt" -exec mv {} /path/dir1/dir2/ \;

mais j'ai des messages: .... identifient le même fichier

J'ai remplacer -exec par -ok pour voir pas à pas ce qui se passe.
Au départ les 5 premiers fichiers sont déplacés normalement puis
quand vient le tour du 6eme fichier voici le message:

/path/dir1/dir2/file1.txt et /path/dir1/dir2/file1.txt identifient le même fichier

et ainsi de suite:

/path/dir1/dir2/file2.txt et /path/dir1/dir2/file2.txt identifient le même fichier
/path/dir1/dir2/file3.txt et /path/dir1/dir2/file3.txt identifient le même fichier
/path/dir1/dir2/file4.txt et /path/dir1/dir2/file4.txt identifient le même fichier
/path/dir1/dir2/file5.txt et /path/dir1/dir2/file5.txt identifient le même fichier

puis les 4 derniers fichiers sont à leurs tours déplacés.
On dirait une boucle mal paramétrée ou quelque chose comme ça.

Quelqu'un pourrait m'expliquer ce comportement bizzare ?


Merci.

1 réponse

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
6 févr. 2009 à 21:39
Salut,

C'est normal vu que le répertoire de recherche c'est le répertoire père du dir2
En fait le message veut dire que les fichiers dont déjà à leur place, rien à déplacer

Pour ne plus avoir ces message tu peux faire
find /path/dir1/ -name "*.txt" -exec mv {} /path/dir1/dir2/ \; 2>/dev/null
0
Merci pour cette explication ;-)
0