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.


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:



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

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

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


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.


1

Je travaille pour moi:

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

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

ls -lS

0

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

ls -lsh | sort -n | sed 's/^[0-9 ]* //'
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.