Comment obtenir la taille de tous les fichiers et de tous les fichiers de ses sous-répertoires à l'aide de la commande du.
J'essaie la commande suivante pour obtenir la taille de tous les fichiers (et des fichiers des sous-répertoires)
find . -type f | du -a
Mais cela affiche également la taille des dossiers. Comment puis-je obtenir une liste des tailles de tous les fichiers et des fichiers des sous-répertoires? J'ai aussi essayé le exec flag
mais je ne sais pas trop comment canaliser la sortie dans une autre commande après avoir exécuté les résultats de find
dans du
.
Le système d'exploitation est AIX 6.1 avec le shell ksh.
find -print0
ou d'autres fonctionnalités de GNU. Si cette option est disponible, le remplacement de\;
par\+
entraînera moins d'appelsdu
et donc de meilleures performances.+
option. Est-ce une option pourdu
ou pourfind
? Et pourquoi cela entraîne-t-il moins d'appels?find
. Il spécifie àexec
la commande (dans notre casdu
) une seule fois, avec tous les résultatsfind
donnés sous forme d'arguments successifs à la commande.du -f --threshold=1G
Si vous avez des utilitaires GNU, essayez
la source
man du
elle ne répertoriefiles
nifrom
indicateur ni indicateur.du -ch
pour obtenir un grand total de fichiers correspondants:find . -name 'blah blah.*' -print0 | du --files0-from=- -ch
J'utilise généralement:
Xargs appelle généralement la commande, même si aucun argument n'a été passé.
xargs du </dev/null
sera toujours appelé,xargs -r du </dev/null
n'appellera pas du. L'-0
argument recherche des chaînes terminées par null au lieu de nouvelles lignes.Ensuite, j'ajoute habituellement
| awk '{sum+=$1} END {print sum}'
la fin pour obtenir le total.la source
then I usually add
vaut de l'or :-)Voici une version avec des noms de paramètres longs et un tri humain.
J'ai également vu pas besoin
-a/--all
d'être passé àdu
.la source
fichiers spécifiques dans le répertoire en cours
du -ch files*
est plus court et fonctionne pour moi
du -sh .
pour le répertoire en cours et tous les fichiers en sous
du (coreutils GNU) 8.30
la source
du -ch files*
? Supposons que le répertoire courant contientant
,apple
,banana
,bat
,cat
,corn
,date
, etdog
, où les noms des animaux sont des sous - répertoires et les noms de fruits / légumes sont des fichiers - quelle commande voulez - vous utiliser pour obtenir seulement les fichiers? Ou n'est-ce pas ce que vous vouliez dire? (2)du -sh .
ne signalera qu'un total général de tout ce qui se trouve dans et sous le répertoire actuel, et pas les fichiers eux-mêmes. C’est à peu près le contraire de la question posée.