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.
ls(1)
/sort
:
-S sort by file size
$ 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
Si vous avez la version sort
appropriée, vous pouvez simplement utiliser:
du -h | sort -rh
le mien est
$ sort --version
sort (GNU coreutils) 8.12
du -ha | sort -h
du
: estime l'utilisation du disque de fichier.
-h : for human
-a : all files
sort
: trie les lignes de texte.
-h : for human
man du; man sort
pour plus. Cela fonctionne pour moi sur Ubuntu v15.
ls -S
n'était pas une option sur le système d'exploitation pour moi. Ce qui suit a travaillé:ls -l | sort -k 5nr
Ils "clé" était de spécifier la colonne à trier (l'obtenir, la "clé"). Ci-dessus, je spécifie -k 5nr
qui signifie trie sur la 5ème colonne qui est la taille (5) évaluée comme un nombre (n) dans l'ordre décroissant (n)
Référence trier la documentation pour plus d'informations
Je travaille pour moi:
ls -l | sort -g -k 5 -r
Lequel (je viens de comprendre) est le même que:
ls -lS
Contrairement à ls -S
, ceci gérera correctement les fichiers fragmentés:
ls -lsh | sort -n | sed 's/^[0-9 ]* //'