Comment supprimer des fichiers ou des répertoires de manière récursive sous Linux ?

Vous avez du mal à supprimer des fichiers et des répertoires sous Linux ? Parcourez cet article pour découvrir les étapes de la suppression récursive de fichiers et de dossiers sous Linux en utilisant la commande rm.

Téléchargement gratuit Téléchargement gratuit Plus de fonctionnalités > Plus de fonctionnalités >
100% sécurité pour le téléchargement gratuit
Vous avez involontairement effacé des fichiers essentiels sur un dispositif Linux ?

Pas d'inquiétude. Wondershare Recoverit peut récupérer vos fichiers égarés en 3 étapes. Le programme de récupération de données Linux final et spécialisé est entièrement fiable et 100% sécurisé.

Un dossier peut contenir de nombreux sous-dossiers et fichiers. La suppression de tous les documents et sous-dossiers d'un répertoire peut être nécessaire lorsqu'on travaille avec le système de fichiers Linux. On parle alors de suppression récursive. La commande supprimée permet d'effacer de manière récursive des fichiers ou des répertoires (également nommés dossiers sous Windows) sous Linux. La fonction rmdir ne supprime que les dossiers vides. Ce manuel expose les étapes de suppression récursive de fichiers et de dossiers sous Linux.

Partie 1. Comment supprimer un répertoire de manière récursive sous Linux à l'aide de la commande rm

Récapitulation de la syntaxe de la commande rm pour la suppression en cascade de répertoires/dossiers :

Syntaxe de la commande
Description
-f Une option forte. Il est déconseillé de demander des fichiers ou des arguments qui n'existent pas.
-r Suppression récursive de répertoires et de leur contenu
-v Sortie excessive
rm -- '-dir1' Effacer un répertoire ou un fichier dont le nom débute par un "-".
rm ./-dir1 La même chose que précédemment
rm -rfv 'nom du répertoire ici' Mettez des guillemets à votre nom de fichier/dossier problématique.
rm -rfv \$dirname1 La même chose qu'avant

Dans Linux et les systèmes de type Unix, tout est considéré comme un fichier. En d'autres mots, les " fichiers " englobent les images, les fichiers, les répertoires, les disques durs SSD, les cartes réseau, les périphériques USB, les claviers, les imprimantes et les connexions réseau.

Exemples de suppression récursive d'un dossier

Dans cet exemple, nous allons éliminer de manière récursive le dossier de données dans le répertoire d'origine courant

rm -r /home/vivek/data/

Avant de supprimer le répertoire de données, le répertoire /home/vivek/data/directory spécifié sera vidé de tous ses sous-dossiers, incluant leurs sous-dossiers et leurs fichiers. Sauf si l'option -f (force) est explicitement indiquée dans la commande, l'utilisateur est prié de supprimer tous les fichiers qui sont en écriture protégée dans les dossiers :

rm -rf dirname-here

Vous pouvez également utiliser la commande suivante :

rm -r -f /path/to/folder/

Pour effacer un répertoire dont le nom débute par un "-", comme "-dsaatia", utilisez l'un des commandements ci-après :

rm -rf -- --dsaatia

Vous pouvez également exécuter la commande suivante :

rm -rf ./--dsaatia

Pour obtenir des résultats plus détaillés, nous pouvons utiliser l'option -v. Pour être plus précis, la commande rm sous Linux nous informe sur ce qui se passe avec nos fichiers et répertoires. A titre d'exemple :

rm -rfv /path/to/dir1
rm -r -f -v /home/vivek/oldpartpics

Effacer les fichiers dont le nom contient des caractères distincts

Vos dossiers et fichiers peuvent inclure des espaces, des points-virgules, des barres obliques inversées et d'autres caractères spéciaux sous Linux. En voici un exemple :

ls -l

Supposons que nous ayons un fichier appelé " Nos informations de vente " et qu'il contienne " baddir# " ou " dir2 ;# ". Alors, comment se débarrasser de ces dossiers aux noms peu communs ? La solution est simple. Nous encadrerons le nom du fichier ou du dossier qui pose problème avec des guillemets. A titre d'exemple :

rm 'Our Sales Data'
rm -rfv '/path/to/Dir 1 ;'
rm -r -f -v "baddir#"
rm a\ long \dir1 \name

De temps en temps, il est nécessaire d'utiliser une barre oblique inversée (\) avant le caractère spécial dans le nom de votre fichier ou dossier :

rm \$dir1

supprimer un répertoire ou un dossier de manière récursive

Partie 2. Comment supprimer des fichiers de manière récursive sous Linux à l'aide de la commande rm ?

Supprimer tous les fichiers de manière récursive

Quand elle est employée avec l'option -r, la commande rm efface le contenu de toutes les variétés de fichiers.

Mais, avant tout, en utilisant la commandels, regardons les répertoires personnels. Dans cet exemple, il y a cinq dossiers : Bureau, dir2, Documents, Téléchargements et removerecurdir.

ls ~/

utiliser la commande ls

Supposons que nous voulions supprimer le répertoire removecurdir et son contenu, y compris tous les fichiers et sous-répertoires. Exécutez la syntaxe ci-dessous.

rm -r removerecurdir/

La sortie ls indique que le dossier et son contenu ont été effacés avec succès.

supprimer des fichiers récursivement sous linux

Suppression récursive des fichiers par taille

Voici les étapes à respecter pour effacer de manière récursive des fichiers (inférieurs à 10 Mo) en utilisant la commande trouver.

La syntaxe de recherche est la suivante :

find <ParentDirectory> -type f -size -<size and units> -exec rm {} +

Vous avez la possibilité d'utiliser sudo pour atteindre les fichiers sécurisés dans l'illustration suivante.

sudo find /var/log -type f -size -10M -exec rm {} +

Le signe moins (-) doit être remplacé par un signe plus (+).

find <ParentDirectory> -type f -size +<size and units> -exec rm {} +

Dans le cas présenté ci-dessous, je vais utiliser la syntaxe antérieure pour éliminer les fichiers de taille supérieure à 1 Go.

find /var/log -type f -size +1G -exec rm {} +

Élimination itérative des fichiers par extension (format de fichier)

La partie suivante explique comment effacer des fichiers de manière répétitive selon leur extension ou leur catégorie de fichier.

Cherchez le contenu du dossier personnel, qui est nommé testhint avec la commande tree.

tree testhint/

Le dossier principal testhint contient un document (file1.txt) et deux sous-dossiers : testhint2 contient file3.txt, et testhint3 contient file3 et something.txt.

répertoire parent testhint

Imaginons que vous ayez l'intention de supprimer de manière répétée tous les fichiers txt. La syntaxe est la suivante :

find <ParentDirectory> -type f -name '*.<Extension>' -print -delete

Par la suite, lancez cette instruction pour éliminer de manière récursive tous les fichiers de texte du répertoire principal testhint.

find ~/testhint -type f -name '*.txt' -print -delete

Tous les documents écrits ont été effacés, ne laissant que file3 sans suffixe.

tree testhint

supprimer tous les fichiers txt de manière récursive

Il est également possible de supprimer des fichiers en fonction de leur extension en utilisant les commandes find et exec.

recherche avec les commandes exec

La syntaxe pour éliminer les fichiers par extension avec -exec est la suivante :

find <ParentDirectory> -type f -name '*.<Extension>' -exec rm -f {} \;

Exécutez la commande ci-dessous pour supprimer les fichiers .log.

find ~/testhint -type f -name '*.log' -exec rm -f {} \;

La commande xargs offre une solution similaire. La distinction entre xargs et exec réside dans le fait que exec exécute la commande rm à chaque fois qu'un fichier satisfait à la condition. La commande xargs exécute la commande rm une fois pour chaque fichier trouvé qui correspond à la condition.

Pour effacer tous les fichiers avec une extension en utilisant find et xargs, employez la formulation ci-dessous :

find <ParentDirectory> -name "*.<FileExtension>" -print0 | xargs -0 rm

supprimer l'extension en utilisant find et xargs

Utilisez la commande suivante pour effacer tous les fichiers .c avec xargs.

find . -name "*.c" -print0 | xargs -0 rm

Encore une fois, les fichiers d'extension choisis ont été effacés avec succès.

a supprimé avec succès les fichiers d'extension sélectionnés

Suppression récursive de tous les fichiers en fonction des autorisations

Examinons le nouveau contenu du répertoire testhint. Quatre fichiers ont un accès complet (file2, file3.c, file6.c et file7).

le contenu du répertoire testhint

Imaginons que vous vouliez repérer et éliminer tous les fichiers avec des permissions totales pour tout le monde. La syntaxe est la suivante :

find <ParentDirectory> -perm <Permissions> -print0 | xargs -0 rm

Exécutez l'instruction ci-dessous pour effacer tous les fichiers accessibles à tous les utilisateurs.

find ~/testhint -perm 777 -print0 | xargs -0 rm

supprimer tous les fichiers en fonction des autorisations

Élimination récursive de fichiers selon leur heure de modification ou de création

Exécutez la syntaxe suivante :

find ~/testhint -perm 777 -print0 | xargs -0 rm

Si vous voulez effacer des fichiers créés ou modifiés au cours de la journée précédente (dernières 24 heures), employez la commande suivante, où 1 représente le quart de jour et le signe moins ( - ) dénote les fichiers créés ou modifiés avant le quart de jour spécifié.

find <Directory> -type f -mtime -1 -delete

Remplacez le signe plus par un signe moins pour supprimer les fichiers créés ou modifiés il y a un jour, il y a moins de 24 heures.

trouver <Répertoire> -type f -mtime +1 -supprimer

Partie 3. Que faire si vous avez accidentellement supprimé un fichier ou un dossier sous Linux ?

Sous Linux, effacer accidentellement un fichier ou un répertoire peut être un véritable défi, mais il existe des mesures à prendre un risque de récupération :

  • Arrêtez d'utiliser l'ordinateur : Afin d'éviter toute perte de données supplémentaire, cessez immédiatement d'utiliser le PC et abstenez-vous de sauvegarder de nouvelles informations sur le disque où se situait le fichier supprimé.
  • Agissez promptement : Plus vous retardez le début du processus de récupération, plus le danger de perte définitive de données s'accroît.
  • Effectuez fréquemment des copies de sauvegarde : Des copies de sauvegarde régulières vous permettent d'avoir une version récente de vos données essentielles au cas où elles seraient supprimées accidentellement.
  • Assurez-vous que votre système de fichiers reste en bon état : Une maintenance périodique du disque, comme la détection et la résolution d'anomalies, peut aider à préserver l'intégrité de votre système de fichiers et faciliter la récupération.

Les plus performants logiciels de restauration de données Linux peuvent aussi vous assister pour récupérer des fichiers égarés ou effacés. En respectant ces recommandations et en utilisant l'outil approprié pour la restauration de données, vous accroissez vos probabilités de récupérer vos fichiers et répertoires effacés dans Linux.

Wondershare Recoverit - Votre logiciel de récupération Linux sûr et fiable

5 481 435 personnes l'ont téléchargé.

Récupère les documents perdus ou supprimés, les photos, les vidéos, la musique, les courriels et plus de 1000 types de fichiers de manière efficace, sûre et complète.

Compatible avec toutes les distributions Linux populaires, y compris Ubuntu, Linux Mint, Debian, Fedora, Solus, Opensuse, Manjaro, etc.

Assistance dans plus de 500 situations de perte de données, comme la suppression, le formatage du disque, le plantage du système d'exploitation, la coupure de courant, l'infection par un virus, la disparition d'une section, et bien d'autres encore.

La conception intuitive de type pointer-cliquer vous permet d'extraire les informations des disques durs Linux en seulement quelques clics.

Fonctionne en utilisant une connexion à distance. Vous pouvez retrouver les données égarées même lorsque votre dispositif Linux est verrouillé.

Résumé

Étant donné que Linux est un système d'exploitation versatile et flexible, les utilisateurs ont la possibilité d'employer de multiples approches de manière itérative afin de supprimer des fichiers ou des répertoires (ou des dossiers) dans Linux. Toutes les options mentionnées ci-dessus sont valables pour la grande majorité des distributions Linux. De plus, si vous effacez involontairement des fichiers et des répertoires, des logiciels de récupération de données Linux sont disponibles.