Question Comment déterminer la taille totale d'un répertoire (dossier) à partir de la ligne de commande?


Existe-t-il une commande simple pour afficher la taille totale totale (utilisation du disque) de tous les fichiers d’un répertoire (dossier)?

Je les ai essayés et ils ne font pas ce que je veux:

  • ls -l, qui affiche uniquement la taille des fichiers individuels dans un répertoire, ni
  • df -h, qui affiche uniquement l’espace libre et utilisé sur mes disques.

682
2017-08-05 18:20


origine


En relation: Comment lister les tailles de fichiers récursifs de fichiers et de répertoires dans un répertoire? - Peter Mortensen
Cross-site duplicate: Comment puis-je obtenir la taille d'un répertoire sur la ligne de commande? - Peter Mortensen


Réponses:


La commande du "résume l'utilisation du disque de chaque fichier, récursivement pour les répertoires", par exemple,

du -hs /path/to/directory
  • -h est d'obtenir les nombres "lisibles par l'homme", par ex. obtenir 140M au lieu de 143260 (taille en Ko)
  • -s est pour résumé (sinon vous aurez non seulement la taille du dossier mais aussi pour tout dans le dossier séparément)

Comme vous utilisez -h vous pouvez trier les valeurs lisibles par l'homme en utilisant

du -sh | sort -h

le -h drapeau sur sort prendra en considération les valeurs de taille "lisibles par l'homme".


Si vous voulez éviter de lister récursivement tous les fichiers et répertoires, vous pouvez fournir le --max-depth paramètre pour limiter le nombre d'éléments affichés. Le plus souvent, --max-depth=1

du -sh --max-depth=1 /path/to/directory

1086
2017-08-05 18:27



respect pour aller plus loin. :) - myusuf3
j'utilise du -sh ou DOOSH comme moyen de s'en souvenir (REMARQUE: la commande est la même, juste l'organisation des drapeaux de ligne de commande à des fins de mémoire) - Marco Ceppi♦
Il existe une option utile pour appeler le --apparent-size. Il peut être utilisé pour trouver la taille réelle d'un fichier ou d'un répertoire (par opposition à son empreinte sur le disque). Par exemple, un fichier texte de 4 caractères seulement occupera environ 6 octets, mais apparaîtra comme prenant environ 4 Ko. une sortie régulière du -sh. Cependant, si vous passez l'option --apparent-size, le résultat sera 6. man du dit: --apparent-size print tailles apparentes, plutôt que l'utilisation du disque; bien que la taille apparente soit généralement plus petite, elle peut être plus grande en raison de trous dans les fichiers (rares), de la fragmentation interne, des blocs indirects - Hopping Bunny
Cela fonctionne aussi pour OS X! Merci, je cherchais vraiment un moyen d’éclaircir les fichiers, aussi bien sur mon ordinateur local que sur mon serveur, mais les méthodes automatisées semblaient ne pas fonctionner. Alors j'ai couru du -hs * et est allé dans le plus grand répertoire et a découvert quels fichiers étaient si gros ... C'est une si bonne méthode, et la meilleure partie est que vous n'avez rien à installer! Définitivement mérité mon vote - Dev
@BandaMuhammadAlHelal Je pense qu'il y a deux raisons: l'arrondissement (du a un arrondi un peu particulier, sans décimales si la valeur a plus d’un chiffre dans l’unité choisie, et le classique 1024 vs 1000 préfixe problème. du a une option -B (ou --block-size) pour changer les unités dans lesquelles il affiche les valeurs, ou vous pouvez utiliser -b au lieu de -h pour obtenir la valeur "brute" en octets. - Marcel Stimberg


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. Recherche de ce type d’outil depuis des années.

  • effectuer une exploration rapide de la hiérarchie des fichiers
  • vous pouvez supprimer par exemple d'énormes fichiers temporaires depuis l'intérieur de l'outil
  • extrêmement vite

Pensez-y comme baobab pour la ligne de commande:

apt-get install ncdu

139
2017-10-11 07:24



C'est absolument fantastique! Comme DaisyDisk, pour OSX - subZero
Outil incroyable! - Ted
ncdu est génial! Après l'avoir installé, faites simplement ceci ncdu /. Vous trouverez très rapidement les plus gros fichiers sur le système. Appuyez aussi sur h dans l'interface de la console ncdu. Il a des raccourcis très utiles - vlad-ardelean
Outil génial! Merci pour l'information! - kstratis


Cela trouve la taille récursivement et la place à côté de chaque nom de dossier, ainsi que la taille totale en bas, le tout dans le format humain

du -hsc *

43
2017-12-19 16:32





Prendre plaisir!

du foldername

Plus d'informations sur cette commande ici 


14
2017-08-05 18:22





tree est une autre commande utile pour ce travail:

Il suffit de l'installer 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 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.)

7
2018-01-27 12:37





Voici ce que j'utilise pour imprimer la taille totale, du dossier et du fichier:

$ du -sch /home/vivek/* | sort -rh

Détails

 ------------------------------------------------------------
   -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

Sortie

 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

5
2017-10-06 14:05





Les réponses ont rendu évident que du est l'outil pour trouver la taille totale d'un répertoire. Cependant, il y a quelques facteurs à considérer:

  • Parfois, du La sortie peut être trompeuse car elle rapporte l'espace alloué par le système de fichiers, qui peut être différent de la somme des tailles des fichiers individuels. En règle générale, le système de fichiers alloue 4096 octets à un fichier, même si vous ne stockez qu'un seul caractère!

  • Différences de sortie dues à la puissance de 2 et à la puissance de 10 unités. le -h basculer vers du divise le nombre d'octets par 2 ^ 10 (1024), 2 ^ 20 (1048576) etc. pour 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

3
2018-02-04 18:56



Find-ls-awk renverra une valeur erronée pour les grands dossiers #1. Pour les plus récents, vous pouvez ajouter --bignum ou -M ; si ce n'est pas une option utiliser find . -ls | tr -s ' '|cut -d' ' -f 7| paste -sd+ |bc  # 2. - goozez
Si le pouvoir de 2 utilisé est un problème, il y a la --si option: "comme -h, mais utilise des puissances de 1000 pas 1024" - muru


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 section correcte, mais depuis la ligne de commande, vous pouvez essayer:

ls -sh filename

le -sest la taille, et la -h est lisible par l'homme.

Utilisation -l montrer sur ls liste, comme ci-dessous:

ls -shl

1
2018-05-12 09:09





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.


0
2017-12-05 09:17





Voici un script POSIX qui fonctionnera avec:

  • Un fichier
  • Des dossiers
  • Un annuaire
  • Répertoires
#!/bin/sh
ls -ARgo "$@" | awk '{q += $3} END {print q}'

La source


0
2018-03-27 11:48





Le meilleur que je pense est le suivant:

du -h directory_name | tail -n1

Cela vous montrera uniquement la taille du répertoire qui vous intéresse et n'imprimera pas les tailles des répertoires et des fichiers dans ce répertoire.

Je devrais ajouter que si la taille du dossier est grande, alors cela prend plus de temps. Vous devez être patient pour que cette commande fonctionne. Tout comme toute autre commande Unix, vous pouvez connaître le temps total de ce processus en utilisant time avant cette commande:

time du -h directory_name | tail -n1

-2
2017-12-19 06:35



du a une option pour cela: -s - muru