rm (Supprimer)
100%

Ligne de Commande · Leçon 13

rm (Supprimer)

Apprenez à supprimer des fichiers et répertoires en vérifiant les cibles et en choisissant des options rm plus sûres.

La commande rm supprime des entrées du système de fichiers. Une suppression en ligne de commande n'envoie normalement rien dans la corbeille du bureau et rm ne possède pas d'annulation intégrée : confirmez donc chaque cible avant l'exécution.

Sa syntaxe élémentaire est :

rm [OPTIONS] FILE...

Supprimer des fichiers

Fournissez un ou plusieurs chemins de fichiers à rm :

$ rm file1
$ rm notes.txt old-report.txt draft.md

Vérifiez l'orthographe et l'emplacement avant d'appuyer sur Entrée. Une sauvegarde ou une copie sous contrôle de version offre une récupération plus fiable que les outils de restauration du système de fichiers après la suppression.

Après avoir confirmé la cible, quelle commande supprime le fichier old-report.txt ?

Prévisualiser les cibles d'un joker

Le shell peut développer un joker en plusieurs opérandes. Par exemple, *.tmp sélectionne les noms non cachés correspondants du répertoire actuel :

$ rm *.tmp

Avant toute suppression, prévisualisez le même motif non cité avec ls :

$ ls *.tmp
cache.tmp  test.tmp
$ rm *.tmp

Le shell développe le motif avant le lancement de rm. Si la prévisualisation contient un fichier inattendu, corrigez le motif au lieu de poursuivre.

Vous prévoyez de supprimer *.tmp. Quelle commande affiche d'abord, sans les supprimer, les chemins non cachés sélectionnés ?

Demander une confirmation

L'option -i interroge avant chaque suppression :

$ rm -i important.txt
rm: remove regular file 'important.txt'? y

Avec GNU rm, -I est une protection moins intrusive : elle demande une confirmation unique si la commande doit supprimer plus de trois fichiers ou agir récursivement.

Quelle commande demande une confirmation avant de supprimer chaque fichier nommé ?

Ignorer les fichiers absents avec -f

L'option -f ignore les opérandes absents et supprime les demandes :

$ rm -f old-cache.txt

Dans un script de nettoyage, elle peut rendre l'opération idempotente si un fichier généré est peut-être déjà absent. Comme elle désactive les confirmations, n'ajoutez pas -f uniquement pour faire taire une erreur que vous n'avez pas comprise.

Supprimer des répertoires

rm sans option ne supprime pas un répertoire :

$ rm projects
rm: cannot remove 'projects': Is a directory

N'utilisez -r ou -R que pour supprimer volontairement une arborescence et tout son contenu :

$ rm -r old-project

Pour un répertoire vide, rmdir est une solution plus limitée :

$ rmdir empty-directory

rmdir échoue si le répertoire n'est pas vide, ce qui protège son contenu d'une suppression récursive.

Quelle commande supprime old-cache/ uniquement si ce répertoire est vide ?

Vérifier une suppression récursive

Une suppression récursive peut effacer une arborescence entière. Avec -f, elle supprime aussi les demandes ; rm -rf exige donc une validation particulièrement rigoureuse de la cible. Avant toute suppression récursive, vérifiez :

  • votre emplacement avec pwd ;
  • le chemin de premier niveau voulu avec ls -ld -- TARGET ;
  • toute correspondance de joker avec une prévisualisation en lecture seule ;
  • si le chemin est absolu ou relatif : /tmp/cache et tmp/cache diffèrent fortement ;
  • l'absence d'espace accidentel : rm -rf old-project et rm -rf old project ciblent des chemins différents.

Placez -- avant une cible susceptible de commencer par un tiret afin qu'elle ne soit pas interprétée comme une option :

$ rm -- -old-name

N'utilisez pas automatiquement sudo lorsque rm signale un problème de permission. Vérifiez d'abord la cible et pourquoi votre compte ne peut pas modifier son répertoire parent. Une suppression récursive avec privilèges peut endommager le système ou les données d'autres utilisateurs.

-v demande à rm de rapporter chaque suppression réussie :

$ rm -rv old-project
removed 'old-project/notes.txt'
removed directory 'old-project'

Après avoir vérifié toute la cible, quelle commande supprime old-project/ et tout son contenu tout en conservant les demandes normales ?

Leçon terminée

Vous avez terminé rm (Supprimer)

Vous savez maintenant supprimer des entrées du système de fichiers en considérant chaque cible comme irréversible.

  • Confirmer les chemins avant leur suppression.

  • Prévisualiser le développement des jokers avec une commande en lecture seule.

  • Demander une confirmation avec -i ou -I.

  • Préférer rmdir lorsque le répertoire doit être vide.

  • Valider toute la cible avant une suppression récursive.

Conservez votre progression

Créez un compte gratuit pour enregistrer cette leçon et continuer sur n'importe quel appareil.

Créer un compte gratuit
Leçon Suivante
Retour à Ligne de Commande