Y a-t-il une différence entre rm -rf / et rm -rf *. *?

rm -rf *.* corrompra votre système de fichiers alors que rm -rf / ne le fera pas ceci?

Commentaires

Réponse

Là « Il ny a rien de spécial, rm -rf *.* est une commande avec un nom de fichier générique, elle supprimera de manière récursive tous les fichiers du répertoire actuel qui contiennent un point dans leurs noms.

rm -rf / donnerait une erreur concernant la tentative dexécution de rm sur le répertoire racine. Ceci est mandaté par POSIX :

Si […] un opérande reso lves dans le répertoire racine, rm doit écrire un message de diagnostic derreur standard et ne rien faire de plus avec de tels opérandes.

En fonction sur le shell et ses paramètres, *.* peut également correspondre à .. pour le répertoire parent, mais ainsi que /, essayer de supprimer cela est également une erreur.

Aucun de ces éléments ne corrompra le système de fichiers, rm ne fera que (essaiera de) supprimer fichiers en utilisant les appels habituels du système de fichiers. Leffet sur le système dans son ensemble, ou sur les fichiers de lutilisateur, peut bien sûr être substantiel si la première commande est exécutée dans un répertoire contenant des fichiers importants.

Commentaires

  • pour des versions suffisamment nouvelles de GNU rm (fonctionnalité initialement volée à Solaris IIRC). Mieux vaut ne pas pleurer si votre poids léger intégré rm nest pas compatible avec le dernier POSIX.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *