170 votes

Comment lister les dossiers vides sous linux

Sous Linux, comment puis-je vérifier tous les dossiers d'un répertoire et afficher le nom de tous les répertoires qui sont vides dans une liste.

0 votes

0 votes

man find explique les différents formats de liste. Voir -print et -print0 par exemple.

311voto

Kirby Todd Points 4938

Essayez ce qui suit :

find . -type d -empty

5 votes

Vous devez remplacer "/" par le répertoire que vous souhaitez utiliser comme racine de recherche.

0 votes

Etes-vous sûr que vos répertoires sont vraiment vides ? Faites ls -a pour voir les fichiers cachés (point).

5 votes

Merci ! Il fonctionne bien sur mon système. Pour obtenir une liste triée, utilisez : find / -type d -empty | sort -u

4voto

Smac89 Points 1926

Avec Zsh, vous pouvez effectuer les opérations suivantes :

printf '%q\n' ./*/**/(/DN^F)

Remplacer . avec le chemin d'accès réel au répertoire que vous voulez, ou supprimez-le si vous voulez rechercher dans tout le système de fichiers.


Dans la section intitulée Qualifications globales :

F

des répertoires "pleins" (c'est-à-dire non vides). Notez que le sens inverse (^F) s'étend aux répertoires vides et à tous les non-répertoires. Utilisez (/^F) pour les répertoires vides.

  • / signifie montrer les répertoires
  • D permet de rechercher également les fichiers (répertoires dans ce cas) cachés.
  • N Active le modèle nul, c'est-à-dire que le cas où il ne trouve aucun répertoire ne devrait pas faire échouer le glob.
  • F permet d'afficher les répertoires non vides
  • ^ est utilisé pour nier la signification du ou des qualificatifs qui le suivent.

Pour les mettre tous dans un tableau :

empties=(./*/**/(/DN^F))

Bonus : Pour supprimer tous les vide les répertoires :

rmdir ./*/**/(/DN^F)

On dirait qu'on a finalement trouvé un cas utile de rmdir !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X