Message d'erreur find

Bonjour, j'ai pleins de fichiers .txt sur mon bureau ,dans des sous dossiers ... je veux les mettre tous dans le même dossier du nom de fichirtxt je fais cette commande (en root) :
"find /home -name "*.txt" -exec mv {} /home/chaa13/Bureau/fichirtest \;"

la commande me renvoi a cette erreur :
mv: «/home/chaa13/Bureau/fichirtest/fichier.txt» et «/home/chaa13/Bureau/fichirtest/fichier.txt» identifient le même fichier
mv: «/home/chaa13/Bureau/fichirtest/fr.txt» et «/home/chaa13/Bureau/fichirtest/fr.txt» identifient le même fichier
mv: «/home/chaa13/Bureau/fichirtest/ht.txt» et «/home/chaa13/Bureau/fichirtest/ht.txt» identifient le même fichier
mv: «/home/chaa13/Bureau/fichirtest/jey.txt» et «/home/chaa13/Bureau/fichirtest/jey.txt» identifient le même fichier
mv: «/home/chaa13/Bureau/fichirtest/ty.txt» et «/home/chaa13/Bureau/fichirtest/ty.txt» identifient le même fichier
mv: «/home/chaa13/Bureau/fichirtest/fd.txt» et «/home/chaa13/Bureau/fichirtest/fd.txt» identifient le même fichier
mv: «/home/chaa13/Bureau/fichirtest/trel.txt» et «/home/chaa13/Bureau/fichirtest/trel.txt» identifient le même fichier
mv: «/home/chaa13/Bureau/fichirtest/ds.txt» et «/home/chaa13/Bureau/fichirtest/ds.txt» identifient le même fichier
mv: «/home/chaa13/Bureau/fichirtest/gt.txt» et «/home/chaa13/Bureau/fichirtest/gt.txt» identifient le même fichier
mv: «/home/chaa13/Bureau/fichirtest/Premier.txt» et «/home/chaa13/Bureau/fichirtest/Premier.txt» identifient le même fichier
mv: «/home/chaa13/Bureau/fichirtest/tre.txt» et «/home/chaa13/Bureau/fichirtest/tre.txt» identifient le même fichier
mv: «/home/chaa13/Bureau/fichirtest/urlclassifierkey3.txt» et «/home/chaa13/Bureau/fichirtest/urlclassifierkey3.txt» identifient le même fichier
mv: «/home/chaa13/Bureau/fichirtest/gr.txt» et «/home/chaa13/Bureau/fichirtest/gr.txt» identifient le même fichier
mv: «/home/chaa13/Bureau/fichirtest/tr.txt» et «/home/chaa13/Bureau/fichirtest/tr.txt» identifient le même fichier
root@chaa13-ordinateur:/home#

Comment remédier a cette erreur
Merci d'avance

1 réponse

  1. Contributeur
    Salut,

    Il faut exclure ton répertoire de destination de la recherche initiale ;-\

    find /home \( -name fichirtest -prune \) -o \( -name "*.txt" \) -exec mv {} /home/chaa13/Bureau/fichirtest \;
    0
    1. Merci mais ce que tu as mis : ( -name fichirtest -prune \) -o \( -name "*.txt" \) .A quoi a sert de mettre (-name fichirtest -prune ) ? et -o ? et (-name "*.txt"\) ?
      0
    2. Contributeur
      Re-

      \( -name fichirtest -prune \)
      L'option "prune" permet de laisser de côté le(s) répertoire(s) mentionné(s) juste avant.

      L'opérateur "-o" est un "OU" qui permet d'évaluer le reste de l'expression.

      \( -name "*.txt" \)
      Ça c'est donc l'expression à prendre en compte dans la recherche. Les parenthèses sont optionnelles, mais permettent de mieux visualiser les actions.
      0