当前位置:首页 > 行业动态 > 正文

按照文件大小排序 linux

使用 ls -l --block-size=K | sort -k5 -h命令,-l 显示详细信息,–block-size=K 将大小转为KB单位,sort -k5 按第5列(文件大小)排序,-h`自动识别单位(KB/MB/GB),实现按文件大小升序

使用 ls 命令按文件大小排序

ls 是 Linux 中最常用的文件列表命令,通过组合参数可实现按文件大小排序。

基本语法

ls -lhS [目录]
  • -l:显示详细信息(权限、所有者、大小等)。
  • -h:以人类可读格式显示文件大小(如 KB、MB)。
  • -S:按文件大小排序(降序,从大到小)。

示例

ls -lhS /path/to/directory

升序排序

若需从小到大排序,可结合 -r 参数反转顺序:

ls -lhSr /path/to/directory

使用 du 命令查看目录大小并排序

du 用于查看目录或文件的磁盘使用量,结合 sort 可对结果排序。

基本语法

du -h --max-depth=1 [目录] | sort -hr
  • -h:人类可读格式。
  • --max-depth=1:仅显示当前目录的子目录大小。
  • sort -hr:按人类可读数值降序排序。

示例

du -h --max-depth=1 /path/to/directory | sort -hr

使用 find 结合 xargs 排序大文件

find 可递归查找文件,结合 xargsls 实现按大小排序。

基本语法

find [目录] -type f -exec ls -lhS {} +
  • -type f:仅查找文件(排除目录)。
  • -exec:对查找结果执行后续命令。

示例(查找当前目录及子目录下的大文件)

find . -type f -exec ls -lhS {} +

排除隐藏文件或指定文件类型

排除隐藏文件(以 开头的文件)

ls -lhS --ignore='.' /path/to/directory

仅显示特定文件类型(如 .txt 文件)

ls -lhS .txt

常见问题与解答

问题 1:如何按文件大小升序显示目录内容?

解答
使用 ls 命令并添加 -r 参数反转排序顺序:

ls -lhSr /path/to/directory

问题 2:如何递归查看所有子目录的大小并按大小排序?

解答
使用 du-a 参数递归显示所有文件和目录,再通过 sort 排序:

du -ah /path/to/directory | sort -hr
  • -a:递归显示所有文件和目录
0