Comment triez-vous du -sh /dir/*
par taille? J'ai lu un site qui disait utilisation | sort -n
mais ce n'est évidemment pas correct. Voici un exemple qui ne va pas.
[~]# du -sh /var/* | sort -n
0 /var/mail
1.2M /var/www
1.8M /var/tmp
1.9G /var/named
2.9M /var/run
4.1G /var/log
8.0K /var/account
8.0K /var/crash
8.0K /var/cvs
8.0K /var/games
8.0K /var/local
8.0K /var/nis
8.0K /var/opt
8.0K /var/preserve
8.0K /var/racoon
12K /var/aquota.user
12K /var/portsentry
16K /var/ftp
16K /var/quota.user
20K /var/yp
24K /var/db
28K /var/empty
32K /var/lock
84K /var/profiles
224M /var/netenberg
235M /var/cpanel
245M /var/cache
620M /var/lib
748K /var/spool
command-line
text-processing
disk-usage
sort
units
xénoterracide
la source
la source
sort -h
fonctionné pour moi dans Ubuntu 16.04 LTS en août 2017. Premièrement, je trouve mon lecteur monté parcd /mnt
(monté par UUID dans fstab). Ensuite , je nedu >~/dumnt.out
puissort -h ~/dumnt.out >~/dumntsort.out
alors je peux faire la queue `~ / dumntsort.out pour voir les plus grands porcs d'espace.Réponses:
Si vous utilisez GNU coreutils (courant dans la plupart des distributions Linux), vous pouvez utiliser
L'
-h
option indiquesort
que l'entrée est le format lisible par l'homme (nombre avec unité; basé sur 1024, de sorte que 1023 est considéré comme inférieur à 1K, ce qui correspond à ce que fait GNUdu -h
).Cette fonctionnalité a été ajoutée à GNU Core Utilities 7.5 en août 2009 .
la source
-r
pour trier si vous voulez les plus gros en hautcoreutils
viabrew
et ajouter le dossier bin à votrePATH
dans votre rc fichier, et-h
devrait être disponible.tail
commande pour voir les porcs.Essayez d’utiliser le drapeau -k pour compter 1K blocs au lieu d’être lisibles par l’homme. Ensuite, vous avez une unité commune et pouvez facilement faire un tri numérique.
Vous n'avez pas explicitement besoin d'unités humaines, mais si vous l'avez fait, il y a plusieurs façons de le faire. Beaucoup semblent utiliser la technique du bloc 1K ci-dessus, puis faire un deuxième appel à du.
https://serverfault.com/questions/62411/how-can-i-sort-du-h-output-by-size
Si vous voulez voir les unités de base de connaissances ajoutées, utilisez:
la source
Si vous ne disposez pas d'une version récente de GNU coreutils , vous pouvez appeler
du
sans-h
obtenir une sortie triable et produire une sortie conviviale avec un peu de post-traitement. Cela a l’avantage de fonctionner même si votre versiondu
n’a pas le-h
drapeau.Si vous voulez des suffixes SI (c'est-à-dire des multiples de 1000 au lieu de 1024), remplacez 1024 par 1000 dans le
while
corps de la boucle. (Notez que 1000 dans la condition est prévu, de sorte que vous obtenez par exemple1M
plutôt que1000k
.)Si vous avez
du
l'option d'afficher les tailles en octets (par exemple-b
ou-B 1
- notez que cela peut avoir pour effet secondaire de compter les tailles de fichier réelles plutôt que l'utilisation du disque), ajoutez un espace au début des
(c'est-à-dires=" kMGTEPYZ";
) ou ajoutezif (x<1000) {return x} else {x/=1024}
au début de lahuman
fonction.L'affichage d'un chiffre décimal pour les nombres compris entre 1 et 10 est laissé au lecteur sous forme d'exercice.
la source
Si vous n'en avez pas,
sort -h
vous pouvez le faire:Ceci obtient la liste du, sépare le suffixe et trie en utilisant cela. Comme il n'y a pas de suffixe pour <1K, le premier sed ajoute un B (pour byte). Le second sed ajoute un séparateur entre le chiffre et le suffixe. Le troisième sed convertit G en Z de sorte qu'il soit plus grand que M; si vous avez des fichiers en téraoctets, vous devrez convertir G en Y et T en Z. Enfin, nous trions en fonction des deux colonnes, puis nous remplaçons le suffixe G.
la source
Sous OS X, vous pouvez installer les coreutils nécessaires via Homebrew :
Avec cela, vous aurez
gsort
, qui comprend le-h
paramètre de ligne de commande.la source
Ce petit script Perl fait l'affaire. Enregistrez-le sous
duh
(ou ce que vous voulez) et appelez-le avecduh /dir/*
la source
Comme Mac OS X n’a pas d’
-h
option poursort
, j’ai donc essayé et apprissed
etawk
pour une première tentative:c'est une longue file. Développé, il est:
Je l' ai essayé sur Mac OS X Mavericks, Yosemite, Ubuntu 2014-04 avec
awk
être la valeur par défautawk
( ce qui estnawk
, parce que les deuxawk
et lenawk
point à/usr/bin/mawk
) ou reluquer, et ils ont tous travaillé.Voici un exemple de la sortie sur un Mac:
au lieu de
du -sk *
, j’ai vu dans la réponse de @ Stefan où le total général est également affiché, et sans traverser aucun point de montage du système de fichiers, en utilisantdu -skcx *
la source
Voici ce que j'utilise sur Ubuntu 10.04, CentOS 5.5, FreeBSD et Mac OS X.
J'ai emprunté l'idée de www.geekology.co.za/ et earthinfo.org , ainsi que des canards infâmes de "Linux Server Hacks" de O'Reilly. Je l'adapte toujours à mes besoins. C'est toujours un travail en cours (comme dans, je travaillais sur ceci dans le train ce matin.):
Voici la sortie:
la source
du -cks -x *
? (avec l'astérisque)ducks
,chmod a+x ducks
puis l'utiliser./ducks
pour l'exécuter? Ensuite, je ne vois que l'utilisation totale du disque, à la fois sur Mac OS X et sur Ubuntu 2014-10. J'ai également essayé de mettre laducks() { ...}
définition dans.bashrc
, puis de l'utiliserducks
pour l'exécuter, et la même chose sur Mac OS X, seulement voir le grand totalDeviens fou avec ce script -
la source
En l'absence de GNU
sort -h
, cela devrait fonctionner dans la plupart des environnements UNIX:la source
Celui-ci gère les noms de fichiers avec des espaces ou des apostrophes, et fonctionne sur des systèmes qui ne prennent pas en charge
xargs -d
ousort -h
:qui se traduit par:
la source
Cela triera la sortie par ordre décroissant de taille:
Cela va trier la sortie par ordre croissant de taille:
PS: cela peut être utilisé pour trier par n'importe quelle colonne mais les valeurs de colonne doivent être au même format
la source
sort -k1rn
est équivalent àsort -rn
et trie simplement numériquement sur la base de la séquence initiale de chiffres décimaux sur chaque ligne. Il ne comprend pas à virgule flottante, et il ne comprend pas lesk
,M
,G
... suffixes. 10.1k serait considéré comme supérieur à 1.23GTesté sur Solaris!
Cela va générer toutes les tailles de répertoires de manière récursive, en bas le répertoire le plus grand en gigaoctets et le plus petit en kilo-octets.
la source
Le plus grand est en bas:
la source
Commander:
du -ah . | sort -k1 -h | tail -n 50
Explication:
du -ah .
sort -k1 -h | tail -n 50
la source
Pour trier par taille en Mo
la source
du -h
(sortie lisible par l'homme) triée numériquement. Vous ne répondez pas à cela. Vous pouvez également souhaiter lier votre compte UNIX-SE aux autres comptes que vous avez sur les autres sites SE.Ce script est encore plus simple:
la source
pour OSX
la source
-k
annulation n’est pas juste-h
et si oui comment cela fournit-il la sortie lisible par l’homme demandée par le PO.