xra*_*alf 11 disk-usage shell-script
哪个命令将打印 tmp 目录中所有文件和目录(包括隐藏文件)的大小,并按照人类可读格式(例如 2 GB)从最大到最小的大小对它们进行排序?
输出可能如下所示:
file.mpg 2GB
file.avi 1.8GB
.backtup 1.7 GB (this is directory)
Run Code Online (Sandbox Code Playgroud)
我尝试使用ls和du命令,但无法找到正确的开关。
这是一个快速修复,使用 du + sort。尝试这个:
du -smc * | sort -n
Run Code Online (Sandbox Code Playgroud)
这将忽略隐藏文件,但这是另一个简单的修复:
du -smc .[^.] .??* * | sort -n
Run Code Online (Sandbox Code Playgroud)
如果上述一种或多种模式与文件不匹配,这可能会导致警告。第一个模式.[^.]匹配以 . 开头的所有两个字符文件名。除了 ..,第二个模式.??*匹配以 . 开头的所有三个或更多字母的文件名。和 * 匹配所有不以 . 对于更复杂的列表,例如在整个文件系统中查找大于 X 的所有文件,或维护文件系统增长列表,我有一些自己编写的 DIY shell 脚本,如果您有兴趣可以分享。