Linux ls命令按大小对文件排序

时间:2020-01-09 10:41:46  来源:igfitidea点击:

如何使用Linux ls命令行实用程序按文件大小对$HOME/Download /目录中的所有* .avi或者* .py文件进行排序?
如何使用ls命令列出Linux中按大小排序的所有文件?

ls命令用于在Linux和Unix等操作系统下列出目录内容。
如果未提供选项或者操作数,则当前目录的内容将显示在屏幕上。
默认情况下,如果-cftuvSUX和-sort选项都没有传递给ls命令,则按字母顺序对条目进行排序。

默认输出(按字母顺序排序)

执行以下命令:$ls $ls * .py $ls * .avi

Linux强制按大小排序选项

您需要按如下所示将-S或者--sort = size选项传递给Linux或者Unix命令行:

$ ls -S
$ ls -S -l
$ ls --sort=size -l
$ ls --sort=size *.avi
$ ls -S -l *.avi

按大小对文件/文件夹(目录)进行排序

在按字典顺序对操作数进行排序之前,将首先看到最大的文件。
以下命令将以相反的顺序对文件大小进行排序:

$ ls -l -S | sort -k 5 -n

或者尝试(

$ ls -lSr

以人类可读的格式(例如1K 234M 2G)对输出和打印尺寸进行排序

将-h选项传递给ls命令,如下所示:

$ ls -lSh
$ ls -l -S -h *.avi
$ ls -l -S -h ~/Downloads/*.mp4 | more

在Linux上按文件大小对ls命令输出进行排序

运行以下ls命令:

ls -Slh

或者

ls -Slhr

当所有文件按大小排序时,如何排除目录

尝试使用grep命令过滤ls命令的输出:

ls -lS | grep -v '^d'
ls -Slh | grep -v '^d'
ls -Slhr | grep -v '^d'

可以将find命令与sort命令一起使用,以仅按排序顺序列出目录大小:

find . -type d -ls | sort -n -r

或者仅列出文件并在排序时排除所有目录:

find . -type f -ls | sort -n -r