Systèmes d'exploitation

Supprimer un fichier ou un dossier sous Linux : rm, rmdir et précautions

En bref :

  • rm fichier supprime un fichier, rmdir dossier supprime un dossier vide, rm -r dossier supprime un dossier et tout son contenu.
  • Il n’y a pas de corbeille : ce qui est supprimé avec rm ne se récupère généralement pas.
  • Ajoutez -i pour qu’on vous demande confirmation, et relisez toujours la commande avant d’appuyer sur Entrée, surtout avec -rf.

Sous Linux, la commande rm (pour « remove ») efface des fichiers et des dossiers directement depuis le terminal. Elle est rapide et puissante, mais aussi sans pitié : contrairement à l’explorateur de fichiers, elle n’envoie rien à la corbeille. Voici comment l’utiliser correctement, avec les réflexes qui évitent les erreurs irréversibles. Si vous débutez, commencez par les commandes Linux de base.

Les commandes de suppression en un coup d’œil

Commande Effet Risque
rm fichier Supprime un fichier Moyen : suppression immédiate, sans corbeille
rm -i fichier Demande confirmation avant chaque suppression Faible
rmdir dossier Supprime un dossier vide uniquement Très faible : refuse si le dossier contient quelque chose
rm -r dossier Supprime le dossier et tout son contenu Élevé
rm -rf dossier Idem, sans aucune question ni message d’erreur Très élevé

Supprimer un fichier avec rm

La forme la plus simple est rm nom_du_fichier. Placez-vous d’abord dans le bon répertoire avec cd et vérifiez-le avec pwd et ls : la plupart des accidents viennent d’une commande lancée au mauvais endroit.

  1. Affichez le contenu du dossier courant : ls -l.
  2. Supprimez avec confirmation : rm -i rapport.txt, puis répondez y pour valider.
  3. Pour plusieurs fichiers, listez-les : rm -i a.txt b.txt c.txt.
  4. Contrôlez le résultat avec ls.

L’option -I (i majuscule) est un bon compromis : rm ne pose qu’une seule question lorsque vous supprimez plus de trois fichiers ou un dossier de façon récursive.

Supprimer un dossier : rmdir et rm -r

rmdir est la commande la plus prudente : elle ne supprime que les dossiers vides et affiche « Le dossier n’est pas vide » dans le cas contraire. Avec rmdir -p a/b/c, elle supprime aussi les dossiers parents devenus vides.

Pour un dossier qui contient des fichiers, utilisez rm -r nom_du_dossier (-r pour « récursif »). Ajoutez -v pour voir ce qui est supprimé.

rm -rf : ce qu’il faut savoir avant

-r descend dans tous les sous-dossiers et -f (« force ») supprime sans confirmation et ignore les fichiers inexistants. Combinées, elles ne laissent aucune seconde chance. Quelques règles de bon sens :

  • Ne lancez jamais rm -rf en copiant-collant une commande trouvée sur un forum sans la comprendre.
  • Évitez les variables vides : rm -rf "$DOSSIER"/* devient rm -rf /* si la variable n’est pas définie.
  • Le garde-fou --preserve-root, actif par défaut sur la version GNU de rm, refuse de supprimer /, mais il ne protège pas contre /* ni contre votre dossier personnel.

Astuce : sur un fichier qui vous appartient, rm n’a pas besoin de sudo. Si vous obtenez « Permission denied », il vaut mieux comprendre pourquoi (voir les droits des fichiers avec chmod) que d’ajouter sudo par réflexe.

Jokers et noms de fichiers difficiles

Le shell développe les jokers avant que rm ne s’exécute : rm *.tmp supprime tous les fichiers finissant par .tmp, rm photo_?.jpg un seul caractère variable. Vérifiez toujours avec ls *.tmp avant.

  • Espaces dans le nom : entourez de guillemets (rm "mon fichier.txt") ou échappez-les (rm mon\ fichier.txt). Sans cela, rm croit qu’il s’agit de deux fichiers.
  • Nom commençant par un tiret : rm -- -fichier ou rm ./-fichier, sinon le nom est lu comme une option.

Pour supprimer des fichiers selon leur âge ou leur taille, la commande find est plus adaptée : voir retrouver un fichier avec find, qui propose aussi l’action -delete.

Une corbeille en ligne de commande

Pour garder un filet de sécurité, envoyez les fichiers à la corbeille de votre session plutôt que de les effacer :

  • gio trash fichier : disponible d’office sur la plupart des environnements GNOME, Cinnamon ou Xfce.
  • trash-put fichier : fourni par le paquet trash-cli (sudo apt install trash-cli sur Debian, Ubuntu et Linux Mint). trash-list affiche le contenu et trash-restore permet de récupérer un fichier.

Récupérer un fichier supprimé : est-ce possible ?

Avec rm, le fichier n’est pas déplacé : son entrée est retirée du système de fichiers. Tant que l’espace n’a pas été réutilisé, des outils comme testdisk ou photorec peuvent parfois retrouver des données sur un disque dur. Sur un SSD, la commande TRIM efface rapidement les blocs libérés et les chances sont faibles. La vraie protection reste la sauvegarde.

Cas pratique : nettoyer un dossier de projet

Camille a un dossier ~/projet rempli de fichiers .log et d’un sous-dossier build obsolète. Elle se place dans le dossier, lance ls *.log pour contrôler la liste, puis rm -i *.log. Pour build, elle tape rm -rv build et vérifie à l’écran que seul ce dossier disparaît. Les fichiers qu’elle hésite à supprimer partent avec gio trash et non avec rm.

À lire aussi : copier, déplacer et renommer avec cp et mv et chercher du texte avec grep.

Questions fréquentes

Quelle est la différence entre rm et rmdir ?

rm supprime des fichiers (et des dossiers avec -r), tandis que rmdir ne supprime que des dossiers vides. C’est la plus sûre des deux.

Comment supprimer un dossier non vide sous Linux ?

Utilisez rm -r dossier, idéalement avec -i ou -v. Ajoutez -f seulement si vous êtes certain du contenu.

Que fait exactement rm -rf ?

Elle supprime récursivement un dossier et son contenu sans demander confirmation et sans signaler les erreurs sur les fichiers absents. Il n’y a aucun retour en arrière possible.

Peut-on annuler un rm ?

Non, pas simplement. Il n’existe pas de corbeille pour rm. Selon le disque, un outil de récupération peut parfois aider, mais mieux vaut utiliser gio trash ou trash-cli au quotidien.

Comment supprimer un fichier dont le nom contient des espaces ?

Mettez le nom entre guillemets, par exemple rm "mon fichier.txt", ou faites précéder chaque espace d’une barre oblique inverse.

Faut-il utiliser sudo avec rm ?

Seulement pour des fichiers du système ou d’un autre utilisateur, avec une extrême prudence. Pour vos fichiers, c’est inutile.

Articles Similaires

Bouton retour en haut de la page