12 votes

Que s'est-il passé lorsque j'ai fait "mv *" ? Aucune erreur n'a été affichée et il ne reste plus qu'un seul dossier. Pourquoi ?

La commande exécutée était "mv space *" dans un dossier contenant 14 Go de données.

mv *

du -hs 

est le même, alors où sont passés les 14 Go de données ? Qu'ai-je fait ?

31voto

Jessica Points 396

Je pense que bash étend le caractère générique et déplace ainsi tous les dossiers dans le dernier.

Par exemple :

$ ls
test1  test2  test3  test4

$ mv *

$ ls
test4

$ ls test4
test1  test2  test3

Ici, mv * est étendu à mv test1 test2 test3 test4 correspondant à mv [OPTION]... SOURCE... DIRECTORY format. Ainsi, chaque dossier est déplacé dans le dernier.

2voto

tuxdna Points 134

Comme décrit par @ssssteffff, avec mv * Le Shell effectue une expansion de caractères génériques à partir des fichiers du répertoire actuel. Cependant, le comportement de mv dépend du nombre d'arguments * s'étend à. S'il y a plus de deux arguments, le dernier argument doit être un répertoire :

   mv [OPTION]... SOURCE... DIRECTORY

Ainsi,

J'ai créé 5 fichiers

$ touch 1 2 3 4 5
$ ls
1  2  3  4  5
$ mv *
mv: target ‘5’ is not a directory
$ ls
1  2  3  4  5

Maintenant, si je crée un répertoire qui vient comme dernier paramètre de l'expansion de la carte sauvage, alors.. :

$ mkdir 6
$ mv *
$ ls
6
$ ls 6
1  2  3  4  5

Vous devriez revérifier ce qu'était ce dernier argument.

  • Si le dernier argument était un répertoire, vos données sont peut-être en sécurité.
  • Si le nombre total d'arguments était de 2, et que le dernier argument était un répertoire, vos données sont peut-être également en sécurité.
  • Si le nombre total d'arguments est de 2, et que le dernier argument est un fichier, alors le second fichier est définitivement perdu.

Êtes-vous sûr de ne pas avoir vu une erreur semblable à celle-ci ?

 mv: target ‘5’ is not a directory`

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X