按数据大小排列linux命令
按数据大小排列linux命令详细介绍
在 Linux 中,可以通过查找常用命令目录下的可执行文件,并按文件大小排序来实现需求。以下是具体步骤和命令:
按可执行文件大小排序(从大到小)
- 查找常用命令目录下的可执行文件
常用命令通常位于/bin、/sbin、/usr/bin、/usr/sbin、/usr/local/bin等目录。使用find命令搜索这些目录中的可执行文件(排除符号链接),并通过ls -l获取文件大小,最后用sort按大小排序:
bash/bin /sbin /usr/bin /usr/sbin /usr/local/bin f l+
- 参数解释:
type f -executable:仅查找普通可执行文件。! -type l:排除符号链接。ls -l {} +:对每个文件执行ls -l,显示详细信息(第 5 列为文件大小,单位字节)。sort -k5 -n -r:按第 5 列(文件大小)进行数字排序,-r表示逆序(从大到小)。
- 输出示例:
plaintext-rwxr-xr-x 1 root root 41943040 Apr 10 2024 /usr/bin/libreoffice-rwxr-xr-x 1 root root 20971520 Mar 25 2024 /usr/bin/firefox
-rwxr-xr-x 1 root root 10485760 Feb 15 2024 /usr/bin/gimp
...
- 参数解释:
按人类可读大小排序(带单位,如 MB/KB)
如果需要更易读的文件大小(如 10M、20KB),可以使用 du -h 替代 ls -l,但需注意格式处理:
bash
/bin /sbin /usr/bin /usr/sbin /usr/local/bin f l+
- 参数解释:
du -h {}:显示文件大小(带单位,如10M)。sort -rh:按人类可读的大小逆序排序(-h支持K/M/G单位的数字排序)。
注意事项
- 内置命令的排除:
如cd、echo等 shell 内置命令没有独立的可执行文件,上述命令仅列出外部命令(即有实际文件路径的命令)。 - 目录范围调整:
如果需要包含 / 排除特定目录(如用户自定义的~/.local/bin),可在find命令中添加或删除路径(如find /bin /usr/bin ~/.local/bin ...)。 - 权限问题:
部分系统目录(如/sbin)需要管理员权限才能访问,可使用sudo执行(需谨慎):
bash/bin /sbin /usr/bin /usr/sbin /usr/local/bin f l+
总结
上述命令会列出 Linux 系统中常用的可执行命令,并按文件大小排序。最大的文件通常是大型程序(如办公软件、浏览器),而小型命令(如 ls、echo)通常只有几十 KB。根据需求选择使用字节排序(ls -l)或人类可读排序(du -h)即可。