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

En bref :
rm fichiersupprime un fichier,rmdir dossiersupprime un dossier vide,rm -r dossiersupprime un dossier et tout son contenu.- Il n’y a pas de corbeille : ce qui est supprimé avec
rmne se récupère généralement pas. - Ajoutez
-ipour 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.
- Affichez le contenu du dossier courant :
ls -l. - Supprimez avec confirmation :
rm -i rapport.txt, puis répondez y pour valider. - Pour plusieurs fichiers, listez-les :
rm -i a.txt b.txt c.txt. - 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 -rfen copiant-collant une commande trouvée sur un forum sans la comprendre. - Évitez les variables vides :
rm -rf "$DOSSIER"/*devientrm -rf /*si la variable n’est pas définie. - Le garde-fou
--preserve-root, actif par défaut sur la version GNU derm, 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,rmcroit qu’il s’agit de deux fichiers. - Nom commençant par un tiret :
rm -- -fichierourm ./-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 paquettrash-cli(sudo apt install trash-clisur Debian, Ubuntu et Linux Mint).trash-listaffiche le contenu ettrash-restorepermet 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.



