J'essaie d'obtenir la taille des répertoires nommés "bak" avec find et du.
Je fais ça: find -name bak -type d -exec du -ch '{}' \;
Mais il renvoie la taille de chaque dossier nommé "bak" et non le total.
Quoi qu'il en soit pour les obtenir? Merci :)
Utilisez xargs(1)
au lieu de -exec
:
find . -name bak -type d | xargs du -ch
-exec
exécute la commande pour chaque fichier trouvé (vérifiez le find(1)
documentation). Piping to xargs
vous permet d'agréger ces noms de fichiers et d'exécuter du
une seule fois. Vous pouvez aussi faire:
find -name bak -type d -exec du -ch '{}' \; +
Si votre version de find
le prend en charge.
Essayez du -hcs
. De la page de manuel:
-s, --summarize
display only a total for each argument
Feed du avec les résultats de find:
du -shc $(find . -name bak -type d)
S'il y a beaucoup de fichiers, -exec ... +
peut être exécuté plusieurs fois et vous obtiendrez plusieurs sous-totaux.
Une alternative consiste à canaliser le résultat de find:
find . -name bak -type d -print0 | du -ch --files0-from=-