Introduction
Sur macOS et Linux, les fichiers peuvent être supprimés depuis la ligne de commande à l’aide d’outils comme rm, find et grep.
Table of contents
- Introduction
- Supprimer un seul fichier
- Supprimer plusieurs fichiers
- Supprimer des fichiers par extension
- Supprimer des fichiers dont le nom contient un texte spécifique
- Recherche de noms de fichiers sans tenir compte de la casse
- Supprimer des fichiers dont le contenu contient un texte spécifique
- Alternative portable pour les fichiers contenant du texte
- Différence importante entre recherche dans les noms de fichiers et recherche dans le contenu
- Supprimer des fichiers dans un dossier spécifique
- Supprimer des fichiers dont le nom contient des espaces
- Supprimer un fichier dont le nom commence par un tiret
- Supprimer des dossiers vides
- Méthode plus sûre avant de supprimer des fichiers
- Exemples pratiques
- Exemple 1 : Supprimer un fichier
- Exemple 2 : Supprimer plusieurs fichiers
- Exemple 3 : Supprimer tous les fichiers CSV dans le dossier courant
- Exemple 4 : Supprimer les fichiers dont le nom contient une date
- Exemple 5 : Supprimer les fichiers dont le nom contient le nom d’un satellite et une date
- Exemple 6 : Supprimer les fichiers dont le contenu contient un texte spécifique
- Exemple 7 : Prévisualiser les fichiers avant de les supprimer
- Exemple 8 : Supprimer les fichiers correspondants de manière interactive
- Conclusion
- Références
Les cas les plus courants sont :
- supprimer un fichier
- supprimer plusieurs fichiers
- supprimer des fichiers dont le nom contient une sous-chaîne spécifique
- supprimer des fichiers dont le contenu contient un motif de texte spécifique
Ce tutoriel présente des exemples pratiques qui fonctionnent à la fois sur macOS et Linux.
Avant de supprimer des fichiers, il est fortement recommandé d’effectuer d’abord une vérification à blanc, surtout lorsque vous utilisez des jokers comme *.
Supprimer un seul fichier
Pour supprimer un fichier, utilisez :
1 | rm filename.txt |
Exemple :
1 | rm data.csv |
Si le nom du fichier contient des espaces, placez-le entre guillemets :
1 | rm "my file.txt" |
Vous pouvez également utiliser l’option interactive -i pour demander une confirmation avant la suppression :
1 | rm -i data.csv |
Exemple de sortie :
1 | remove data.csv? |
Tapez y pour confirmer.
Supprimer plusieurs fichiers
Pour supprimer plusieurs fichiers à la fois, listez-les après rm :
1 | rm file1.txt file2.txt file3.txt |
Exemple :
1 | rm data_01.csv data_02.csv data_03.csv |
Avec confirmation :
1 | rm -i data_01.csv data_02.csv data_03.csv |
Supprimer des fichiers par extension
Pour supprimer tous les fichiers ayant une extension donnée dans le dossier courant, utilisez un joker.
Par exemple, pour supprimer tous les fichiers CSV :
1 | rm *.csv |
Avant de supprimer, il est plus sûr de lister d’abord les fichiers :
1 | ls *.csv |
Puis supprimez-les :
1 | rm *.csv |
Avec confirmation :
1 | rm -i *.csv |
Autre exemple, supprimer tous les fichiers .txt :
1 | rm *.txt |
Supprimer des fichiers dont le nom contient un texte spécifique
Si vous voulez supprimer des fichiers parce que leur nom de fichier contient une sous-chaîne spécifique, utilisez find.
Par exemple, supposons que vous ayez des fichiers comme :
1 2 3 | viirs_efire_fire_pixels_NOAA21_20250321.csv.gz viirs_efire_skipped_fp_variables_NOAA21_20250321.csv viirs_efire_tile_statistics_NOAA21_20250321.csv |
et que vous vouliez supprimer tous les fichiers dont le nom contient :
1 | NOAA21_20250321
|
Commencez par faire une vérification à blanc :
1 | find . -type f -name "*NOAA21_20250321*" |
Puis supprimez les fichiers correspondants :
1 | find . -type f -name "*NOAA21_20250321*" -exec rm {} + |
Une version interactive plus sûre est :
1 | find . -type f -name "*NOAA21_20250321*" -exec rm -i {} + |
Ici :
.signifie rechercher à partir du répertoire courant-type fsignifie rechercher uniquement des fichiers-name "*NOAA21_20250321*"signifie que le nom du fichier doit contenir cette sous-chaîne-exec rm {} +supprime les fichiers correspondants
Recherche de noms de fichiers sans tenir compte de la casse
Pour supprimer des fichiers dont le nom contient une sous-chaîne, sans tenir compte des majuscules/minuscules, utilisez -iname :
1 | find . -type f -iname "*noaa21_20250321*" |
Puis supprimez-les :
1 | find . -type f -iname "*noaa21_20250321*" -exec rm {} + |
Version interactive :
1 | find . -type f -iname "*noaa21_20250321*" -exec rm -i {} + |
Supprimer des fichiers dont le contenu contient un texte spécifique
Si vous voulez supprimer des fichiers parce que leur contenu interne contient un texte spécifique, utilisez d’abord grep pour trouver les fichiers.
Par exemple, pour trouver les fichiers qui contiennent :
1 | NOAA21_20250321
|
exécutez :
1 | grep -rl "NOAA21_20250321" . |
Ici :
greprecherche du texte-rrecherche récursivement dans les sous-dossiers-laffiche uniquement les noms des fichiers qui contiennent le texte correspondant.signifie rechercher à partir du répertoire courant
Après avoir soigneusement vérifié la liste, supprimez ces fichiers avec :
1 | grep -rl "NOAA21_20250321" . | xargs rm |
Cependant, cette version simple peut poser problème avec les noms de fichiers contenant des espaces.
Une version plus sûre est :
1 | grep -rlZ "NOAA21_20250321" . | xargs -0 rm |
Version interactive :
1 | grep -rlZ "NOAA21_20250321" . | xargs -0 rm -i |
Alternative portable pour les fichiers contenant du texte
Une autre approche portable consiste à combiner find, grep et rm.
Commencez par prévisualiser les fichiers :
1 | find . -type f -exec grep -l "NOAA21_20250321" {} + |
Puis supprimez-les :
1 | find . -type f -exec grep -l "NOAA21_20250321" {} + | xargs rm |
Pour les noms de fichiers contenant des espaces, utilisez :
1 2 3 4 | find . -type f -exec grep -l "NOAA21_20250321" {} + | while IFS= read -r file do rm "$file" done |
Version interactive :
1 2 3 4 | find . -type f -exec grep -l "NOAA21_20250321" {} + | while IFS= read -r file do rm -i "$file" done |
Différence importante entre recherche dans les noms de fichiers et recherche dans le contenu
Une erreur courante consiste à utiliser grep lorsque l’on cherche des noms de fichiers.
Par exemple :
1 | grep -rl "NOAA21_20250321" . |
recherche à l’intérieur des fichiers.
Cela ne recherche pas dans les noms de fichiers.
Pour rechercher dans les noms de fichiers, utilisez :
1 | find . -type f -name "*NOAA21_20250321*" |
Résumé :
1 2 3 | Recherche dans les noms de fichiers -> utiliser find Recherche à l’intérieur des fichiers -> utiliser grep Supprimer des fichiers -> utiliser rm |
Supprimer des fichiers dans un dossier spécifique
Pour rechercher dans un dossier spécifique au lieu du répertoire courant, remplacez . par le chemin du dossier.
Exemple sur un disque externe macOS :
1 | find /Volumes/HD15TB/Datasets -type f -name "*NOAA21_20250321*" |
Puis supprimez les fichiers correspondants :
1 | find /Volumes/HD15TB/Datasets -type f -name "*NOAA21_20250321*" -exec rm {} + |
Exemple sur Linux :
1 | find /home/user/Datasets -type f -name "*NOAA21_20250321*" |
Puis supprimez les fichiers correspondants :
1 | find /home/user/Datasets -type f -name "*NOAA21_20250321*" -exec rm {} + |
Supprimer des fichiers dont le nom contient des espaces
Si un fichier contient des espaces dans son nom, utilisez des guillemets :
1 | rm "my file.txt" |
Avec find, la syntaxe suivante gère correctement les noms de fichiers contenant des espaces :
1 | find . -type f -name "*my text*" -exec rm {} + |
Version interactive :
1 | find . -type f -name "*my text*" -exec rm -i {} + |
Supprimer un fichier dont le nom commence par un tiret
Si un nom de fichier commence par -, rm peut l’interpréter comme une option.
Par exemple, un fichier nommé :
1 | -test.txt |
peut être supprimé avec :
1 | rm -- -test.txt |
ou :
1 | rm ./-test.txt |
Supprimer des dossiers vides
Pour supprimer un dossier vide, utilisez :
1 | rmdir folder_name |
ou :
1 | rm -d folder_name |
Pour supprimer un dossier et tout ce qu’il contient, utilisez :
1 | rm -r folder_name |
Soyez prudent avec la suppression récursive. Vérifiez toujours le chemin du dossier avant d’exécuter rm -r.
Version interactive :
1 | rm -ri folder_name |
Méthode plus sûre avant de supprimer des fichiers
Une bonne méthode consiste à :
Étape 1 : Prévisualiser les fichiers correspondants
1 | find . -type f -name "*NOAA21_20250321*" |
Étape 2 : Supprimer de manière interactive
1 | find . -type f -name "*NOAA21_20250321*" -exec rm -i {} + |
Étape 3 : Supprimer directement seulement lorsque vous êtes sûr
1 | find . -type f -name "*NOAA21_20250321*" -exec rm {} + |
Exemples pratiques
Exemple 1 : Supprimer un fichier
1 | rm output.csv |
Exemple 2 : Supprimer plusieurs fichiers
1 | rm output_01.csv output_02.csv output_03.csv |
Exemple 3 : Supprimer tous les fichiers CSV dans le dossier courant
1 | rm *.csv |
Exemple 4 : Supprimer les fichiers dont le nom contient une date
1 | find . -type f -name "*20250321*" -exec rm {} + |
Exemple 5 : Supprimer les fichiers dont le nom contient le nom d’un satellite et une date
1 | find . -type f -name "*NOAA21_20250321*" -exec rm {} + |
Exemple 6 : Supprimer les fichiers dont le contenu contient un texte spécifique
1 | grep -rlZ "NOAA21_20250321" . | xargs -0 rm |
Exemple 7 : Prévisualiser les fichiers avant de les supprimer
1 | find . -type f -name "*NOAA21_20250321*" |
Exemple 8 : Supprimer les fichiers correspondants de manière interactive
1 | find . -type f -name "*NOAA21_20250321*" -exec rm -i {} + |
Conclusion
Sur macOS et Linux, les commandes les plus utiles pour supprimer des fichiers sont rm, find et grep.
Utilisez rm lorsque vous connaissez déjà le nom du fichier :
1 | rm file.txt |
Utilisez find lorsque le nom du fichier contient une sous-chaîne spécifique :
1 | find . -type f -name "*substring*" -exec rm {} + |
Utilisez grep lorsque le contenu du fichier contient un texte spécifique :
1 | grep -rlZ "text" . | xargs -0 rm |
La meilleure habitude de sécurité est de toujours prévisualiser les fichiers correspondants avant de les supprimer.
Références
| Liens | Site |
|---|---|
| GNU Coreutils Manual: rm invocation | GNU |
| GNU Findutils Manual | GNU |
| GNU Grep Manual | GNU |
| POSIX rm Utility | The Open Group |
