Existe-t-il une commande simple permettant d’afficher la taille totale agrégée (utilisation du disque) de tous les fichiers d’un répertoire (dossier)?
J'ai essayé ceux-ci, et ils ne font pas ce que je veux:
ls -l
, qui affiche uniquement la taille des fichiers individuels dans un répertoire, nidf -h
, qui affiche uniquement l'espace libre et utilisé sur mes disques.La commande du
"résume l’utilisation du disque de chaque fichier, de manière récursive pour les répertoires", par exemple,
du -hs /path/to/directory
-h
consiste à obtenir les chiffres "lisibles par l'homme", par exemple. obtenez 140M
au lieu de 143260
(taille en Ko)-s
est pour le résumé (sinon vous obtiendrez non seulement la taille du dossier, mais aussi tout le contenu dans le dossier séparément)Lorsque vous utilisez -h
, vous pouvez trier les valeurs lisibles par l'homme à l'aide de
du -h | sort -h
L'indicateur -h
sur sort
tiendra compte des valeurs de taille "Human Readable".
Si vous souhaitez éviter de répertorier de manière récursive tous les fichiers et répertoires, vous pouvez fournir le paramètre --max-depth
pour limiter le nombre d'éléments affichés. Le plus souvent, --max-depth=1
du -h --max-depth=1 /path/to/directory
Récemment, j'ai trouvé un excellent outil interactif basé sur ncurses, qui vous donne rapidement un aperçu de la taille des répertoires. Recherché ce genre d'outil pendant des années.
Pensez-y comme baobab pour la ligne de commande:
apt-get install ncdu
Cela trouve la taille de manière récursive et le met à côté de chaque nom de dossier, avec la taille totale en bas, le tout au format humain.
du -hsc *
tree
est une autre commande utile pour ce travail:
Installez-le simplement via Sudo apt-get install tree
et tapez ce qui suit:
tree --du -h /path/to/directory
...
...
33.7M used in 0 directories, 25 files
De arbre de l'homme :
-h Print the size of each file but in a more human readable way, e.g. appending a size letter for kilo‐
bytes (K), megabytes (M), gigabytes (G), terabytes (T), petabytes (P) and exabytes (E).
--du For each directory report its size as the accumulation of sizes of all its files and sub-directories
(and their files, and so on). The total amount of used space is also given in the final report (like
the 'du -c' command.)
Voici ce que j'utilise pour imprimer la taille totale, du dossier et du fichier:
$ du -sch /home/vivek/* | sort -rh
------------------------------------------------------------
-c, --total
produce a grand total
-h, --human-readable
print sizes in human readable format (e.g., 1K 234M 2G)
-s, --summarize
display only a total for each argument
-------------------------------------------------------------
-h, --human-numeric-sort
compare human readable numbers (e.g., 2K 1G)
-r, --reverse
reverse the result of comparisons
70M total
69M /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/lib
992K /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/results
292K /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/target
52K /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/user-files
Les réponses ont clairement montré que du
est l'outil permettant de trouver la taille totale d'un répertoire. Cependant, il y a deux facteurs à prendre en compte:
De temps en temps, la sortie de du
peut être trompeuse, car elle indique l'espace alloué par le système de fichiers, qui peut être différent de la somme des tailles des fichiers individuels. Typiquement, le système de fichiers allouera 4096 octets à un fichier même si vous n'y avez stocké qu'un seul caractère!
Différences de sortie dues à une puissance de 2 et à une puissance de 10 unités. Le -h
passe à du
divise le nombre d'octets par 2 ^ 10 (1024), 2 ^ 20 (1048576), etc., afin de donner une sortie lisible par l'homme. Beaucoup de gens pourraient être plus habitués à voir des puissances de 10 (par exemple, 1K = 1000, 1M = 1000000) et être surpris par le résultat.
Pour trouver la somme totale des tailles de tous les fichiers d'un répertoire, en octets, procédez comme suit:
find <dir> -ls | awk '{sum += $7} END {print sum}'
Exemple:
$ du -s -B 1
255729664
$ find . -ls | awk '{sum += $7} END {print sum}'
249008169
Pour seulement la taille du répertoire dans un format lisible, utilisez ce qui suit:
du -hs directoryname
Ce n'est probablement pas dans la bonne section, mais à partir de la ligne de commande, vous pouvez essayer:
ls -sh filename
Le -s
est la taille et le -h
est lisible par l'homme.
Utilisez -l
pour afficher la liste ls
, comme ci-dessous:
ls -shl
du /foldername
est la commande standard pour connaître la taille d'un dossier. Il est recommandé de rechercher les options en lisant la page de manuel:
man du
Vous devriez lire la page de manuel (disponible en ligne ) avant d’utiliser la commande.
Voici un script POSIX qui fonctionnera avec:
#!/bin/sh
ls -ARgo "$@" | awk '{q += $3} END {print q}'
Si votre répertoire souhaité contient plusieurs sous-répertoires, utilisez ce qui suit:
$ cd ~/your/target/directory
$ du -csh
-c, --total produit un total général
- s, --summarize n'affiche qu'un total pour chaque argument
- h, - formats d’impression lisibles par l’homme dans un format lisible par l’homme (par exemple, 1K 234M 2G)
ce qui produirait alors un total global de l'utilisation de la mémoire par tous les fichiers/dossiers du répertoire en cours.