按照文件大小排序linux
- 行业动态
- 2025-05-19
- 4
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 |
使用 du
和 sort
组合(适用于目录)
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 |
使用 find
和 xargs
排序(递归查找大文件)
find
可递归查找文件,结合 xargs
和 sort
实现按大小排序。
命令示例:
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)中,文件管理器通常支持按列排序:
- 打开文件管理器(如 Nautilus、Dolphin)。
- 右键点击列标题,选择“大小”。
- 点击“大小”列标题可切换升序/降序。
常见问题与解答
问题 1:如何排除隐藏文件(以 开头的文件)?
解答:
在 find
命令中添加 ! -name '.'
条件,
find . -type f ! -name '.' -exec du -b {} + | sort -nr
问题 2:如何将文件大小显示为 MB 或 GB?
解答:
使用 ls
或 du
的 -h
参数自动适配单位,或手动指定块大小:
- 以 MB 显示:
ls -lS --block-size=1M
- 以 GB 显示:`du -h –block-