Menu Fermer

Comment supprimer un fichier ou répertoire sur Linux

Linux est livré avec plusieurs commandes et utilitaires de bases pouvant nous aider à supprimer des fichiers.
Lorsque l’on administre une machine sur Linux, il est régulièrement nécessaire de supprimer des fichiers.
Ainsi, il convient de connaître l’ensemble des commandes Linux qui existent à cet effet.

Pensez que la suppression d’un fichier n’est pas une opération anodine, ainsi :

  • Faites preuve de prudence lorsque vous utilisez les commandes ci-dessous, en particulier celles qui utilisent des expressions régulières ou des modèles de recherche avec la commande de recherche. Une expression ou un motif incorrect entraînera la suppression d’importants fichiers de données / système et de fichiers non destinés
  • Il est recommandé d’avoir une sauvegarde ou une copie actuelle des fichiers de données et de périphériques critiques
  • Utilisez prudence lors de l’exécution de ces commandes, en particulier si vous utilisez sudo ou en tant que superutilisateur (racine).

Ce tutoriel vous guide pour supprimer un fichier ou répertoire sur Linux.

Comment supprimer un fichier ou répertoire sur Linux

Comment supprimer un fichier ou répertoire sur Linux

Supprimer des fichiers ou répertoire avec rm

Pour supprimer un fichier ou un répertoire de Linux, nous pouvons utiliser la commande RM. La commande RM supprime chaque fichier spécifié.
Par défaut, elle ne supprime pas les répertoires mais cela est possible en utilisant des options.

rm FICHIER

La commande RM peut supprimer plusieurs fichiers à la fois en les spécifiant l’un après l’autre :

rm fichier1 fichier2 fichier3
Supprimer plusieurs fichiers avec la commande rm

On peut aussi supprimer plusieurs fichiers en utilisant le caractère joker :

rm *.txt
Supprimer plusieurs fichiers avec la commande rm

Pour effacer plusieurs fichiers avec des extensions différentes en une seule commande rm, séparez les extensions par une virgule et utilisez les accolades :

rm *.{txt,doc,xls}

Enfin il est possible de supprimer un répertoire vide ou comportants une arborescence avec l’option -rf :

rm -rf repertoire
rm -rf : suppression avec récursivité et option force

Pour d’autres exemples sur l’utilisation de la commande rm, reportez-vous à ce tutoriel :

Supprimer des fichiers avec unlink

La commande unlink permet de supprimer un fichier.
Elle est très limitée car vous ne pouvez pas supprimer plusieurs fichiers à la fois, ni répertoire.
Ainsi, l’utilisation du caractère joker n’est pas non plus possible.

unlink fichier

Par exemple pour supprimer le fichier employes.txt :

unlink employes.txt
Supprimer des fichiers avec unlink

Supprimer des fichiers avec find

La commande find peut supprimer des fichiers grâce à l’option -delete.
Cela est utile pour trouver et supprimer des types de fichiers ou répertoire.
Ainsi grâce à find, vous pouvez supprimer très facilement des fichiers ou répertoires d’une arborescence en récursif selon certains critères.

Par exemple pour supprimer des fichiers ou répertoire vides, on utilise l’option -empty.
On peut alors filtrer par le type (f pour fichier); ainsi pour supprimer tous les fichiers vides d’une arborescence :

find {repertoire} -type f -empty -delete

Pour supprimer les fichiers vides d’une arborescence, on filtre par le type d (pour directory) :

find /tmp -name "temp*" -perm 755 -delete

On peut aussi supprimer les répertoires vides en jouant sur l’option -type :

find {repertoire} -type d -empty -delete

Voici un autre exemple où l’on utilise find pour trouver les fichiers *.txt dans /tmp puis on supprime avec -delete :

find /tmp -type f -name "*.txt" -delete
Supprimer des fichiers avec find sur Linux

Une autre utilisation de la commande find consiste à exécuter rm grâce à -exec.
Cette méthode était utilisée par le passé car la commande find n’avait pas forcément l’option -delete.
Un autre avantage ici est que vous pouvez utiliser toutes les options de la commande rm.

Par exemple pour supprimer tous les fichiers avec l’extension txt d’une arborescence :

find {repertoire} -type f -name "*.txt" -exec rm -f {} \;

Dans l’exemple ci-dessous, j’applique la commande sur le répertoire /tmp.
De plus j’ajoute l’option -v à rm afin d’afficher les fichiers supprimés.

Supprimer des fichiers avec find sur Linux

De ce fait, si vous souhaitez, par sécurité ajouter une confirmation de suppression, on peut ajoutez l’option -i :

find {repertoire} -type f -name "*.txt" -exec rm -i {} \;

shred : écraser les fichiers sans possibilité de récupération

La commande schred écrase à plusieurs reprises le ou les fichiers spécifiés afin de rendre la récupération plus difficile voire impossible.

schred fichier

Par exemple ci-dessous, j’écrase le fichier save.tar.gz :

schred save.tar.gz

On voit alors que schred ne supprime pas le fichier mais écrase son contenu.
Le fichier passe donc du type gzip compressé en data (donnée brute).
Il faudra alors le supprimer avec rm ou unlink.

shred : écraser les fichiers sans possibilité de récupération

Utilisez l’option -n pour stipuler le nombre d’écrasements successifs à effectuer.
Par défaut, le nombre est de 3.

shred -n 10 save.tar.gz

Quelles sont les commandes Linux pour supprimer un fichier ou répertoire

COMMANDESDESCRIPTION
rmSupprimer des fichiers ou répertoire
rmdirSupprimer un répertoire
unlinkSupprimer un fichier
findPermet de chercher des fichiers ou répertoires avec des critères pour les supprimer
shredEcraser un fichier pour masquer son contenu et le supprimer éventuellement le supprimer
Les commandes Linux pour supprimer un fichier ou répertoire