Pb avec find -exec mv ?

Résolu
duddy67 -  
 duddy67 -
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   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
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
duddy67
 
Merci pour cette explication ;-)
0