Les fichiers manquent après le déplacement

J’ai essayé de déplacer les fichiers .html dans un sous-répertoire appelé “html” et maintenant je ne trouve plus les fichiers. Voici ce que j’ai fait (avec le message d’erreur):

$ mkdir html $ for FILE in $(ls *html) ; do mv $FILE .html ; done mv: cannot stat 'html:': No such file or directory $ cd html $ ls *.html ls: cannot access '*.html': No such file or directory 

Alors ma question: où ont-ils disparu?

Vous avez deux problèmes; d’abord, il y a une faute de frappe:

 mv $FILE .html ^ 

Ça ne devrait pas être là! Deuxièmement, votre liste de fichiers inclura le répertoire html lui-même, donc pour l’exclure, essayez:

 for FILE in *html ; do if ! [ -d "$FILE" ] ; then mv "$FILE" html ; fi ; done 

Notez que j’utilise *html plutôt que $(ls *html) pour éviter de récupérer le contenu du répertoire html/ , puis déplacez-vous tant que vous n’avez pas de nom de répertoire.

Vous avez effectivement déplacé tous les fichiers * html dans un fichier nommé .html. Seul le dernier fichier * html sera laissé car chaque mouvement écrasera le déplacement précédent.