GNU/Linux >> Tutoriels Linux >  >> Linux

comment puis-je supprimer récursivement des répertoires vides dans mon répertoire personnel ?

Le find La commande est l'outil principal pour les opérations récursives du système de fichiers. Utilisez le -type d expression à dire find vous souhaitez rechercher uniquement des répertoires (et non des fichiers simples). La version GNU de find supporte le -empty testez donc

$ find . -type d -empty -print

imprimera tous les répertoires vides sous votre répertoire actuel.

Utilisez find ~ -… ou find "$HOME" -… pour baser la recherche sur votre répertoire personnel (si ce n'est pas votre répertoire actuel).

Après avoir vérifié que cela sélectionne les bons répertoires, utilisez -delete pour supprimer toutes les correspondances :

$ find . -type d -empty -delete

Vous pouvez appeler le rmdir sur chaque répertoire, depuis rmdir ne supprimera un répertoire que s'il est vide :

find "$HOME" -type d -exec rmdir {} + 2>/dev/null

Si vous souhaitez également imprimer les répertoires en cours de suppression, vous devrez vérifier s'ils sont vides :

find "$HOME" -type d -exec bash -c 'shopt -s nullglob; shopt -s dotglob; files=("$1"/*); [[ ${files[@]} ]] || rmdir -v "$1"' -- {} \; 

Voici un pur exemple bash (version 4 ou supérieure) :

shopt -s globstar
for dir in **/; do
   files=("$dir"/*)
   [[ ${files[@]} ]] || rmdir -v "$dir"
done

Linux
  1. Rechercher le répertoire d'exclusion ?

  2. Comment supprimer récursivement des répertoires avec Wildcard ?

  3. Comment rechercher et supprimer des répertoires et des fichiers vides sous Linux

  4. Comment lister récursivement tous les fichiers et répertoires

  5. Comment trouver le répertoire personnel d'un utilisateur sous Linux ou Unix ?

Comment supprimer des comptes d'utilisateurs avec le répertoire personnel sous Linux

Comment supprimer (supprimer) le répertoire sous Linux

Comment trouver un fichier sous Linux dans tous les répertoires de manière récursive

Comment rechercher et supprimer des répertoires vides sous Linux

Comment puis-je faire un chmod récursif uniquement sur les répertoires?

Comment puis-je trouver le fichier le plus ancien dans une arborescence de répertoires