Les commandes rm
et rmdir
sont des outils essentiels pour la suppression de fichiers et de répertoires dans les systèmes d’exploitation de type Unix, tels que Linux et macOS. Elles remplissent une fonction similaire aux commandes del
et deltree
que l’on retrouve dans les environnements Windows et DOS. Ces commandes sont très polyvalentes et proposent un large éventail d’options pour une gestion précise des données.
Il est crucial de comprendre que les éléments supprimés via rm
et rmdir
ne sont pas transférés dans une corbeille. L’action est immédiate et irréversible. En cas de suppression accidentelle, la restauration des données ne sera possible qu’à partir d’une sauvegarde préalable.
Supprimer des fichiers avec la commande rm
Dans sa forme la plus simple, rm
permet de supprimer un unique fichier situé dans le répertoire courant. Pour ce faire, il suffit de saisir la commande rm
, suivie d’un espace, puis du nom du fichier à éliminer.
rm fichier_1.txt
Si le fichier n’est pas dans le répertoire actuel, il est nécessaire de spécifier le chemin d’accès complet ou relatif menant à l’emplacement du fichier.
rm ./chemin/vers/le/fichier/fichier_1.txt
La commande rm
autorise également la suppression de plusieurs fichiers simultanément. Il suffit de lister tous les noms de fichiers souhaités après la commande.
rm fichier_2.txt fichier_3.txt
Les caractères génériques (wildcards) offrent une grande flexibilité pour sélectionner des groupes de fichiers. L’astérisque *
représente un nombre quelconque de caractères, tandis que le point d’interrogation ?
représente un seul caractère. Par exemple, la commande suivante supprimera tous les fichiers image avec l’extension .png
dans le répertoire courant.
rm *.png
Cette autre commande supprimera tous les fichiers dont l’extension est constituée d’un seul caractère, comme par exemple Fichier.1
et Fichier.2
, mais pas Fichier.12
.
rm *.?
Si un fichier est protégé en écriture, le système demandera une confirmation avant de procéder à sa suppression. Il faudra alors répondre par y
(oui) ou n
(non) et appuyer sur Entrée.
Pour minimiser les risques liés à l’utilisation des caractères génériques, l’option -i
(interactive) permet de demander une confirmation pour chaque fichier. Cela garantit un meilleur contrôle sur les suppressions.
rm -i *.dat
À l’opposé, l’option -f
(force) désactive toute demande de confirmation, même si les fichiers sont en lecture seule.
rm -f nom_du_fichier
Supprimer des répertoires avec la commande rm
Pour supprimer un répertoire vide, il faut utiliser l’option -d
(directory). Il est également possible d’utiliser les caractères génériques dans les noms de répertoires, de la même manière qu’avec les noms de fichiers.
rm -d répertoire
Pour supprimer plusieurs répertoires vides simultanément, il suffit de les lister après l’option -d
.
rm -d répertoire1 répertoire2 /chemin/vers/répertoire3
Pour supprimer des répertoires non vides, l’option -r
(récursive) est indispensable. Cette option supprime non seulement le répertoire ciblé, mais aussi tous les fichiers et sous-répertoires qu’il contient.
rm -r répertoire1 répertoire2 répertoire3
Si un répertoire ou un fichier est protégé en écriture, une demande de confirmation sera affichée. Pour supprimer sans cette confirmation, il faut combiner les options -r
et -f
.
rm -rf répertoire
Il convient d’utiliser la commande rm -rf
avec une grande prudence. Une erreur dans cette commande peut entraîner une perte de données significative ou un dysfonctionnement du système. Pour visualiser la structure des répertoires et les fichiers qui seront affectés par rm -rf
, la commande tree
est un outil précieux.
Pour installer tree
sous Ubuntu ou une distribution basée sur Debian, utilisez la commande suivante :
sudo apt-get install tree
Pour les autres distributions, référez-vous à l’outil de gestion de paquets approprié.
L’exécution de la commande tree
génère une représentation visuelle claire de la structure des répertoires et des fichiers à partir de l’emplacement où la commande est lancée.
tree
Un chemin d’accès peut être fourni à tree
pour commencer la représentation à partir d’un autre point du système de fichiers.
tree chemin/vers/répertoire
La commande rm
dispose également des options --one-file-system
, --no-preserve-root
et --preserve-root
, mais elles sont réservées aux utilisateurs avancés. Une mauvaise manipulation peut avoir des conséquences désastreuses, allant jusqu’à la suppression complète du système de fichiers. Pour plus d’informations, il est conseillé de consulter la page de manuel de la commande rm
.
Supprimer des répertoires avec la commande rmdir
La commande rmdir
est une alternative à rm
pour la suppression de répertoires. La principale distinction réside dans le fait que rmdir
ne peut supprimer que des répertoires vides. Il est incapable de supprimer des fichiers directement.
Dans son utilisation de base, rmdir
permet de supprimer un seul répertoire vide. Comme avec rm
, il est possible de spécifier plusieurs noms de répertoires ou un chemin d’accès vers un répertoire.
Pour supprimer un répertoire situé dans le répertoire courant, il suffit de saisir son nom après la commande rmdir
.
rmdir répertoire
Pour supprimer plusieurs répertoires, il faut lister leurs noms à la suite de rmdir
.
rmdir répertoire1 répertoire2 répertoire3
Pour supprimer un répertoire qui n’est pas situé dans le répertoire courant, il faut indiquer son chemin complet.
rmdir /chemin/vers/répertoire
Si rmdir
tente de supprimer un répertoire non vide, une erreur est signalée. Dans l’exemple suivant, rmdir
supprime avec succès le répertoire clients
, mais échoue à supprimer le répertoire projets
car ce dernier contient des fichiers. Le répertoire projets
est alors laissé intact, tout comme les fichiers qu’il contient.
Lorsqu’une erreur « Répertoire non vide » est renvoyée, rmdir
interrompt le traitement des répertoires suivants. L’option --ignore-fail-on-non-empty
permet de forcer rmdir
à ignorer ces erreurs et à poursuivre avec les répertoires restants.
Dans l’exemple suivant, deux dossiers, work/reports
et work/quotes
, sont passés à rmdir
. L’option --ignore-fail-on-non-empty
est utilisée. Le dossier work/reports
contient des fichiers, et rmdir
échoue à le supprimer. Cependant, grâce à l’option, rmdir
ignore l’erreur et traite le dossier suivant, work/quotes
, qui est vide et donc supprimé.
Voici la commande utilisée :
rmdir --ignore-fail-on-non-empty work/reports /work/quotes
L’option -p
(parents) permet de supprimer un répertoire ainsi que ses répertoires parents, pour autant qu’ils soient vides. rmdir
commence par le répertoire cible, puis remonte vers ses parents. Si un répertoire parent est vide après la suppression du répertoire enfant, il sera également supprimé, et ainsi de suite.
Dans l’exemple suivant, la commande passée à rmdir
est :
rmdir -p work/invoices
Les répertoires invoices
et work
sont ainsi supprimés comme demandé.
Que vous utilisiez Bash ou un autre shell, Linux offre des commandes puissantes et flexibles pour la suppression de fichiers et de répertoires directement depuis la ligne de commande. Ces outils conviennent particulièrement aux utilisateurs qui privilégient le terminal, qu’ils travaillent sur des serveurs sans interface graphique ou en session distante sur un système sans écran.
Ces commandes sont également très pratiques pour l’automatisation via des scripts shell. Un script exécuté par une tâche cron peut par exemple automatiser la suppression de fichiers journaux inutiles. Dans ce cas, il est essentiel de se souvenir de la puissance de ces commandes, de les tester minutieusement et de toujours conserver des sauvegardes récentes.