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

按照文件大小排序linux

使用 ls -lS命令可按文件大小降序排列,添加 -r参数(即 ls -lrS)则按升序排列, -l显示详细信息, -S表示按

使用 ls 命令排序

ls 是 Linux 中最常用的文件列表命令,通过 -l(长格式)和 -S(按大小排序)参数组合,可以快速按文件大小排序。

命令示例

ls -lSh
  • -l:显示详细信息(权限、所有者、大小等)。
  • -S:按文件大小排序(基于块大小,非精确字节)。
  • -h:以人类可读的格式显示大小(如 K、M、G)。

示例输出
| 权限 | 链接数 | 所有者 | 大小 | 日期 | 文件名 |
|——|——–|——–|———|——————–|—————-|
| -rw-r–r-| 1 | user | 1.2M | 2023-10-01 12:34 | file1.txt |
| -rw-r–r-| 1 | user | 896K | 2023-09-30 10:22 | file2.log |
| -rw-r–r-| 1 | user | 512K | 2023-10-02 08:15 | script.sh |


使用 dusort 组合(适用于目录)

du 命令用于查看目录或文件的磁盘使用量,结合 sort 可按大小排序。

命令示例

du -h --max-depth=1 | sort -hr
  • -h:以人类可读的格式显示大小。
  • --max-depth=1:仅显示当前目录,不递归子目录。
  • sort -hr:按人类可读格式反向排序(从大到小)。

示例输出
| 大小 | 路径 |
|———|———————|
| 2.3G | /var/log |
| 1.2G | /home/user/Downloads |
| 512M | /etc |


使用 findxargs 排序(递归查找大文件)

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

命令示例

find . -type f -exec du -b {} + | sort -nr
  • -type f:仅查找文件(排除目录)。
  • du -b:以字节为单位显示大小。
  • sort -nr:按数值反向排序(从大到小)。

示例输出
| 大小(字节) | 文件路径 |
|————–|——————————|
| 12345678 | ./large_file.iso |
| 567890 | ./project/data.csv |
| 12345 | ./config/settings.json |


使用 stat 命令(精确到字节)

stat 命令可查看文件的精确大小(包括字节数),适合需要高精度的场景。

命令示例

stat --format="%s %n"  | sort -n
  • %s:显示文件大小(字节)。
  • %n:显示文件名。
  • sort -n:按数值升序排序。

示例输出
| 大小(字节) | 文件名 |
|————–|——————|
| 1024 | small.txt |
| 2048 | medium.log |
| 4096 | large.zip |


图形化工具(如文件管理器)

在 Linux 桌面环境(如 GNOME、KDE)中,文件管理器通常支持按列排序:

  1. 打开文件管理器(如 Nautilus、Dolphin)。
  2. 右键点击列标题,选择“大小”。
  3. 点击“大小”列标题可切换升序/降序。

常见问题与解答

问题 1:如何排除隐藏文件(以 开头的文件)?

解答
find 命令中添加 ! -name '.' 条件,

find . -type f ! -name '.' -exec du -b {} + | sort -nr

问题 2:如何将文件大小显示为 MB 或 GB?

解答
使用 lsdu-h 参数自动适配单位,或手动指定块大小:

  • 以 MB 显示:ls -lS --block-size=1M
  • 以 GB 显示:`du -h –block-
0