Comment puis-je trier tous les fichiers par taille dans un répertoire?

48

Comment puis-je afficher les fichiers dans un répertoire unix triés par leur taille lisible par l'homme, allant du plus grand au plus petit?

j'ai essayé

du -h | sort -V -k 1 

mais cela ne semble pas fonctionner.

utilisateur46976
la source
Pouvez-vous préciser si vous vous attendez à ce que les tailles de sous-répertoires apparaissent également dans la sortie, et également si vous recherchez la taille apparente des fichiers ou la taille réelle qu'ils utilisent sur le disque?
Jlliagre

Réponses:

53

ls(1) /sort:

-S     sort by file size
Bonjour71
la source
1
-Sn'est plus un argument de tri valide, du moins sur Ubuntu. La réponse ci-dessous de @alex a fonctionné pour moi. Le lien de réponse est superuser.com/a/990437/528836 .
Prasanna
33
$ ls -lhS

-l     use a long listing format
-h     with -l, print sizes in human readable format (e.g., 1K 234M 2G)
-S     sort by file size
kev
la source
16

Si vous avez la sortversion appropriée , vous pouvez simplement utiliser:

du -h | sort -rh

le mien est

$ sort --version
sort (GNU coreutils) 8.12
ztank1013
la source
4

ls -Sn'était pas une option sur le système d'exploitation pour moi. Ce qui suit a fonctionné:
ls -l | sort -k 5nr
Ils "clé" était de spécifier la colonne à trier (l'obtenir, la "clé"). Ci-dessus, je spécifie le -k 5nrsens sur la cinquième colonne, qui correspond à la taille (5) évaluée par un nombre (n) dans l'ordre décroissant (n).

Référence documentation de tri pour plus d' informations

Alex
la source
4

du -ha | sort -h

du : estimer l'utilisation du disque de fichier.

-h : for human
-a : all files

sort : trier les lignes de texte.

-h : for human

man du; man sortpour plus. Cela fonctionne pour moi sur Ubuntu v15.

Andrew_1510
la source
1

Je travaille pour moi:

ls -l | sort -g -k 5 -r

Lequel (je viens de comprendre) est le même que:

ls -lS
Aaron
la source
0

Contrairement à ls -Scela, cela gérera correctement les fichiers fragmentés:

ls -lsh | sort -n | sed 's/^[0-9 ]* //'
jlliagre
la source