Comment supprimer des fichiers et des répertoires dans le terminal Linux

Les commandes rm et rmdir suppriment des fichiers et des répertoires sur Linux, macOS et autres systèmes d’exploitation de type Unix. Ils sont similaires aux commandes del et deltree dans 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 sont pas déplacés 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 la commande rm, un espace, puis le nom du fichier que vous souhaitez 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 transmettre 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. Le * représente plusieurs caractères et le? représente un seul caractère. Cette commande supprimerait tous les fichiers image png dans le 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».

commande rm avec fichier protégé en écriture

Pour réduire le risque d’utiliser rm avec des caractères génériques, utilisez l’option -i (interactive). Cela vous oblige à confirmer la suppression de chaque fichier.

rm -i *.dat

commande rm en mode interactif

L’option -f (force) est l’opposé de interactive. 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 l’option -d (répertoire). Vous pouvez utiliser des caractères génériques (* et?) Dans les noms de répertoire comme vous le 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 l’option -r (récursive). 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 les options -r (récursive) et -f (force) ensemble.

rm -rf directory

Il faut faire attention ici. Une erreur avec la commande rm -rf peut entraîner une perte de données ou un dysfonctionnement du système. C’est dangereux et la prudence est la meilleure politique. Pour mieux comprendre la structure des répertoires et les fichiers qui seront supprimés par la commande rm -rf, utilisez la commande tree.

  Comment écouter la radio sur le bureau Linux avec Gradio

Utilisez 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

L’exécution de la commande tree 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

sortie de la commande tree

Vous pouvez également fournir un chemin d’accès à la commande tree pour qu’elle démarre l’arborescence à partir d’un autre répertoire du système de fichiers.

tree path/to/directory

La commande rm possède également les options –one-file-system, –no-preserve-root, –preserve-root, 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 partager des dossiers de lecteur iCloud sur iPhone, iPad et Mac

Comment supprimer des répertoires avec rmdir

Il existe une autre commande, appelée rmdir, que vous pouvez utiliser pour supprimer des répertoires. La différence entre rm et rmdir est que 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.

Supprimez un seul répertoire dans le répertoire courant en passant son nom à rmdir:

rmdir directory

Supprimez plusieurs répertoires en passant une liste de noms à rmdir:

rmdir directory1 directory2 directory3

Supprimez un répertoire qui ne se trouve pas dans le répertoire actuel 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 supprime avec succès et silencieusement le répertoire des clients mais refuse de supprimer le répertoire des projets car il contient des fichiers. Le répertoire des projets est laissé tel quel et les fichiers qu’il contient ne sont pas modifiés.

commande rmdir avec un dossier non vide

Lorsque 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 donnera le message d’erreur et ne fait rien de plus. Vous pouvez le forcer à ignorer ces erreurs avec l’option –ignore-fail-on-non-empty afin que les autres répertoires soient traités.

  Comment mettre à jour le lecteur multimédia VLC

Dans l’exemple suivant, deux dossiers ont été transmis à rmdir, il s’agit de work / reports et work / quotes. L’option –ignore-fail-on-non-empty a été incluse dans la commande. Le dossier de travail / rapports contient des fichiers, rmdir ne peut donc pas le supprimer. L’option –ignore-fail-on-non-empty force rmdir à ignorer l’erreur et à passer au dossier suivant à traiter, à savoir work / quotes. Il s’agit d’un dossier vide et rmdir le supprime.

C’était la commande utilisée.

rmdir --ignore-fail-on-non-empty work/reports /work/quotes

rmdir avec l'option --ignore-fail-on-non-empty

Vous pouvez utiliser l’option -p (parents) pour supprimer un répertoire et aussi pour supprimer ses répertoires parents. Cette astuce fonctionne car rmdir commence par le répertoire cible, puis revient au parent. Ce répertoire devrait maintenant être vide, donc il peut ê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

Commande rmdir avec option de suppression des parents

Les factures et les répertoires de travail 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 une tâche cron, 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.