Fatmawati Achmad Zaenuri / Shutterstock.com
La rm
et rmdir
Les commandes suppriment des fichiers et des répertoires sur Linux, macOS et d’autres systèmes d’exploitation de type Unix. Ils sont similaires au del
et deltree
commandes sous Windows et DOS. Ces commandes sont très puissantes et comportent de nombreuses options.
Il est important de noter que les fichiers et répertoires supprimés à l’aide de rm
et rmdir
ne soyez pas déplacé vers la corbeille. Ils sont immédiatement supprimés de votre ordinateur. Si vous supprimez accidentellement des fichiers à l’aide de ces commandes, la seule façon de les restaurer est à partir d’une sauvegarde.
Comment supprimer des fichiers avec rm
Le cas le plus simple consiste à supprimer un seul fichier dans le répertoire courant. Tapez le rm
commande, un espace, puis le nom du fichier à supprimer.
rm file_1.txt
Si le fichier ne se trouve pas dans le répertoire de travail actuel, indiquez un chemin d’accès à l’emplacement du fichier.
rm ./path/to/the/file/file_1.txt
Vous pouvez passer plus d’un nom de fichier à rm
. Cela supprime tous les fichiers spécifiés.
rm file_2.txt file_3.txt
Les caractères génériques peuvent être utilisés pour sélectionner des groupes de fichiers à supprimer. La *
représente plusieurs caractères et le ?
représente un seul caractère. Cette commande supprimerait tous les fichiers image png du répertoire de travail actuel.
rm *.png
Cette commande supprimera tous les fichiers qui ont une seule extension de caractère. Par exemple, cela supprimerait File.1 et File.2, mais pas File.12.
rm *.?
Si un fichier est protégé en écriture, vous serez invité à le supprimer. Vous devez répondre par y
ou n
et appuyez sur « Entrée ».
Pour réduire le risque d’utilisation rm
avec des caractères génériques, utilisez le -i
option (interactive). Cela vous oblige à confirmer la suppression de chaque fichier.
rm -i *.dat
La -f
(force) est l’opposé d’interactif. Il ne demande pas de confirmation même si les fichiers sont protégés en écriture.
rm -f filename
Comment supprimer des répertoires avec rm
Pour supprimer un répertoire vide, utilisez le -d
(répertoire) option. Vous pouvez utiliser des caractères génériques (*
et ?
) dans les noms de répertoires comme vous pouvez avec les noms de fichiers.
rm -d directory
Fournir plusieurs noms de répertoire supprime tous les répertoires vides spécifiés.
rm -d directory1 directory2 /path/to/directory3
Pour supprimer les répertoires qui ne sont pas vides, utilisez le -r
(récursive) option. Pour être clair, cela supprime les répertoires et tous les fichiers et sous-répertoires qu’ils contiennent.
rm -r directory1 directory2 directory3
Si un répertoire ou un fichier est protégé en écriture, vous serez invité à confirmer la suppression. Pour supprimer les répertoires qui ne sont pas vides et pour supprimer ces invites, utilisez le -r
(récursif) et -f
(forcer) les options ensemble.
rm -rf directory
Il faut faire attention ici. Faire une erreur avec le rm -rf
Cette commande pourrait entraîner une perte de données ou un dysfonctionnement du système. C’est dangereux, et la prudence est la meilleure politique. Pour comprendre la structure des répertoires et les fichiers qui seront supprimés par le rm -rf
commande, utilisez la tree
commander.
Utilisation apt-get
pour installer ce paquet sur votre système si vous utilisez Ubuntu ou une autre distribution basée sur Debian. Sur les autres distributions Linux, utilisez plutôt l’outil de gestion des packages de votre distribution Linux.
sudo apt-get install tree
Exécuter le tree
La commande produit un diagramme simple à comprendre de la structure du répertoire et des fichiers sous le répertoire à partir duquel elle est exécutée.
tree
Vous pouvez également fournir un chemin vers le tree
pour le faire démarrer l’arborescence à partir d’un autre répertoire du système de fichiers.
tree path/to/directory
La rm
la commande a aussi --one-file-system, --no-preserve-root, --preserve-root
options, mais celles-ci ne sont recommandées qu’aux utilisateurs avancés. Si vous vous trompez, vous pouvez supprimer accidentellement tous vos fichiers système. Consulter la commande page de manuel pour plus d’informations.
Comment supprimer des répertoires avec rmdir
Il y a une autre commande, appelée rmdir
, que vous pouvez utiliser pour supprimer des répertoires. La différence entre rm
et rmdir
est-ce rmdir
ne peut supprimer que les répertoires vides. Il ne supprimera jamais les fichiers.
Le cas le plus simple consiste à supprimer un seul répertoire vide. Comme avec rm
, vous pouvez transmettre plusieurs noms de répertoire à rmdir
, ou un chemin vers un répertoire.
Supprimer un seul répertoire dans le répertoire courant en passant son nom à rmdir
:
rmdir directory
Supprimez plusieurs répertoires en transmettant une liste de noms à rmdir
:
rmdir directory1 directory2 directory3
Supprimez un répertoire qui ne se trouve pas dans le répertoire courant en spécifiant le chemin complet de ce répertoire:
rmdir /path/to/directory
Si vous essayez de supprimer un dossier qui n’est pas vide, rmdir
vous donnera un message d’erreur. Dans l’exemple suivant rmdir
avec succès et en silence, supprime le clients
répertoire mais il refuse de supprimer le projects
répertoire car il contient des fichiers. La projects
le répertoire est laissé tel quel et les fichiers qu’il contient ne sont pas modifiés.
Quand rmdir
donne une erreur «Répertoire non vide», il arrête de traiter les répertoires qui lui ont été passés sur la ligne de commande. Si vous lui avez demandé de supprimer quatre répertoires et que le premier contient des fichiers, rmdir
vous donnerait le message d’erreur et ne ferait rien de plus. Vous pouvez le forcer à ignorer ces erreurs avec le --ignore-fail-on-non-empty
option pour que les autres répertoires soient traités.
Dans l’exemple suivant, deux dossiers ont été passés à rmdir
, ceux-ci sont work/reports
et work/quotes
. La --ignore-fail-on-non-empty
L’option a été incluse dans la commande. La work/reports
le dossier contient des fichiers, donc rmdir
ne peut pas le supprimer. La --ignore-fail-on-non-empty
forces d’option rmdir
pour ignorer l’erreur et passer au dossier suivant à traiter, qui est work/quotes
. Ceci est un dossier vide, et rmdir
le supprime.
C’était la commande utilisée.
rmdir --ignore-fail-on-non-empty work/reports /work/quotes
Vous pouvez utiliser le -p
(parents) option pour supprimer un répertoire et aussi pour supprimer ses répertoires parents. Cette astuce fonctionne parce que rmdir
commence par le répertoire cible, puis revient au parent. Ce répertoire devrait maintenant être vide, il peut donc être supprimé par rmdir
, et le processus se répète en remontant le chemin qui a été fourni à rmdir
.
Dans l’exemple suivant, la commande transmise à rmdir
est:
rmdir -p work/invoices
Les deux invoices
et le work
les répertoires sont supprimés, comme demandé.
Que vous utilisiez Bash ou tout autre shell, Linux fournit des commandes flexibles et puissantes pour vous permettre de supprimer des répertoires et des fichiers directement à partir de la ligne de commande du terminal. Certaines personnes préfèrent avoir un flux de travail qui tourne autour du terminal. D’autres n’ont peut-être pas le choix en la matière. Ils peuvent travailler sur des serveurs sans interface graphique installée ou sur une session à distance sur un système sans tête tel qu’un Raspberry Pi. Ces commandes sont parfaites pour ce groupe de personnes.
Mais quel que soit le type de flux de travail que vous préférez, ces commandes se prêtent très bien à être incluses dans des scripts shell. Si un script est déclenché par un cron
travail, il peut aider à automatiser les tâches de gestion de routine telles que la purge des fichiers journaux indésirables. Si vous étudiez ce cas d’utilisation, souvenez-vous de la puissance de ces commandes, testez tout soigneusement et conservez toujours une sauvegarde récente.