Souvent, les répertoires vides sont encombrés dans le système de fichiers Linux et il devient difficile de rechercher et de supprimer manuellement chacun d'entre eux. La commande rmdir (supprimer le répertoire ) est utilisé sous Linux pour supprimer les dossiers vides.
La commande est assez simple à utiliser et la syntaxe de base est :
$ rmdir <empty folder name1> <empty folder name1> ... <empty folder nameN>
Ici, ‘nom de dossier vide1 ', 'nom de dossier vide2 ‘, etc. sont les noms des dossiers, y compris le chemin complet. Si les dossiers se trouvent dans le même répertoire, comme vous le savez peut-être déjà, il n'est pas nécessaire de noter les chemins d'accès complets.
Vous pouvez également utiliser des expressions génériques pour supprimer les répertoires vides avec des modèles dans leurs noms. Par exemple, pour supprimer les répertoires vides avec la sous-chaîne 'test ‘ en leur nom, lancez :
$ rmdir *test*
Cependant, pour utiliser rmdir nous devons toujours spécifier le nom (ou le chemin complet) de chaque répertoire vide à supprimer. Il n'y a pas d'option dans rmdir pour rechercher récursivement les répertoires vides, puis les supprimer.
Nous utilisons les fonctionnalités de la commande find dans de tels cas.
Rechercher et supprimer des répertoires vides sous Linux
La commande de recherche est utilisé pour rechercher des fichiers et des dossiers sous Linux en fonction de différents paramètres tels que le nom de fichier, la taille, le type, etc. Nous utiliserons find pour déterminer les répertoires vides de manière récursive, puis exécutez rmdir pour supprimer les répertoires trouvés.
Utilisez l'argument '-empty'
pour rechercher des objets vides et spécifier '-type d'
pour ne trouver que des répertoires.
$ find path_of_folder_to_search -type d -empty
Pour rechercher récursivement des répertoires vides dans le même dossier, exécutez :
$ find . -type d -empty
Maintenant, puisque nous avons déjà la liste récursive des répertoires vides trouvés, nous utilisons le '-exec'
argument de la commande de recherche pour exécuter rmdir sur eux.
$ find . -type d -empty -exec rmdir {} \;
L'espace réservé {}
remplace chaque entrée dans la liste des répertoires trouvés et '\;'
signifie la fin de la commande à exécuter.
Cependant, même avec cela, il ne fera qu'un seul cycle de recherche et de suppression des répertoires vides, mais il ne supprimera pas les répertoires qui deviennent vides après le premier cycle de suppression.
Pour résoudre ce problème, nous utilisons simplement le '-delete'
option, qui supprimera à plusieurs reprises tous les répertoires vides jusqu'au répertoire de niveau supérieur.
$ find . -type d -empty -delete
C'est ainsi que nous pouvons supprimer tous les répertoires vides de manière récursive sous Linux.
Conclusion
Nous avons appris à utiliser le rmdir commande et commande de recherche sous Linux pour supprimer les répertoires vides de manière récursive. En savoir plus sur ces commandes dans leurs pages de manuel respectives :
$ man rmdir $ man find
Merci d'avoir lu et partagez vos réflexions ci-dessous !