web-dev-qa-db-fra.com

rm -r versus rm -d?

Je vois beaucoup de ressources sur rm -r mais presque rien sur rm -d même si le drapeau d concerne apparemment la suppression de répertoires.

Quelle est la différence entre les deux exactement? Est-ce que rm -d est identique à rmdir? Est-il "plus sûr" que rm -r?

5
AJJ

J'ai essayé les deux commandes et voici mes conclusions:

  • rm -d fonctionne comme rmdir (à moins que quelque chose ne se passe avec des liens ou quelque chose comme ça).
  • rm -r supprime le répertoire cible et supprime de manière récursive tout ce qu'il contient (y compris les répertoires non vides et les fichiers de tout type)

Donc, la différence est assez claire. Il ne fait aucun doute que rm -r est une commande très dangereuse qui doit être utilisée avec précaution (Exemple: rm -rf / peut potentiellement supprimer votre système; ou rm -rf * pourrait supprimer votre projet actuel), tandis que rm -d ne vous laissera que supprimer les répertoires vides (rappelez-vous que rm -rd est une commande valide et qu'il fonctionnera comme rm -r, soyez donc prudent).

8

Une différence entre rm -rd et rm -rf est que le premier vous demandera de supprimer un fichier ou un répertoire protégé en écriture, tandis que le second procédera ensuite à la suppression des fichiers protégés en écriture sans vous demander s'il peut le faire. . Alors que rm -rd et rm -rf sont tous les deux récursifs et potentiellement dangereux s'ils sont dirigés vers le mauvais répertoire, le premier fournit un peu plus de protection contre les actions que vous ne souhaitiez pas vraiment faire.

1
Glenn Horton-Smith