rm (Unix)

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

rm (en référence au terme anglais remove, supprimer) est une commande Unix permettant de supprimer des fichiers et répertoires.

Utilisation[modifier | modifier le code]

Dans un shell Unix, la syntaxe générale est la suivante :

rm fichier           pour supprimer un fichier
rm -r répertoire     pour supprimer un répertoire et son contenu (r pour récursif)
rm -ri répertoire    demande une confirmation (i pour interactif) avant chaque effacement

À défaut d'être le super-utilisateur, pour pouvoir effacer un fichier dans un répertoire, la permission d'écriture sur le répertoire est nécessaire (et pas celle sur le fichier), cependant, rm demandera une confirmation par défaut dans ce cas précis, sauf si l'option f (force) est utilisée :

rm -rf répertoire

Pour supprimer des fichiers ou répertoires sans confirmation

Sans l'option r, rm ne supprime pas de répertoire, même vide. La commande rmdir est utilisée pour supprimer des répertoires vides.

Si le fichier ou le répertoire commence par un tiret (par exemple -a), un problème se pose car rm -a est interprété comme l'appel à option a de rm (qui n'existe pas), mais on peut utiliser par exemple :

rm ./-a

ou (pour la version GNU de rm)

rm -- -a

La commande suivante est parfois citée à titre anecdotique pour les désastres occasionnés par l'exécution d'une commande accidentelle sous des systèmes de type Unix. Lorsqu'elle est exécutée avec les droits root, celle-ci efface de manière récursive et sans demande de confirmation tous les répertoires et fichiers à partir de la racine, occasionnant ainsi la destruction du système et des données situées dans les éventuels points de montage :

rm -rf /

Certains systèmes ont toutefois ajouté une légère sécurité dans la commande, ainsi l'exécution de cette commande affichera une erreur.

Fonctionnement[modifier | modifier le code]

rm est une interface à l'appel système unlink(2) (en) d'Unix. Sur certains systèmes, rm coexiste avec une commande shell unlink qui fournit une interface plus primitive vers l'appel système du même nom.

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]