例如我有命令显示文件夹需要多少空间
du folder | sort -n
Run Code Online (Sandbox Code Playgroud)
它工作得很好,但是我想要人类可读的形式
du -h folder
Run Code Online (Sandbox Code Playgroud)
但是,如果我这样做,则无法将其排序为数字。
如何加入du folder
并du -h folder
查看排序为 的输出du folder
,但第一列来自du -h folder
PS这只是一个例子。这项技术可能对我非常有用(如果可能的话)
All*_*lu2 41
尝试类似:
du -h folder | sort -h
Run Code Online (Sandbox Code Playgroud)
备择方案: -n
用于数字排序
注意:-h
排序选项仅存在于较新版本的 Ubuntu 中。
Pra*_*eek 13
这是一个更通用的方法。获取两个不同文件中的du folder
和的输出du -h folder
。
du folder > file1
du -h folder > file2
Run Code Online (Sandbox Code Playgroud)
关键部分是:使用合适的分隔符逐行连接file1
和连接file2
。
paste -d '#' file1 file2 > file3
Run Code Online (Sandbox Code Playgroud)
(假设#
没有出现在file1
和 中file2
)
现在排序file3
。请注意,这将根据file1
内容进行排序并按内容打破联系file2
。使用cut
以下方法提取相关结果:
sort -n -k1,7 file3 | cut -d '#' -f 2
Run Code Online (Sandbox Code Playgroud)
另请查看man sort
其他选项。
您也可以将其保存为别名,以备后用。为此,请将以下内容添加到 的底部~/.bashrc
:
sorted-du () {
paste -d '#' <( du "$1" ) <( du -h "$1" ) | sort -n -k1,7 | cut -d '#' -f 2
}
Run Code Online (Sandbox Code Playgroud)
然后,打开一个新的终端会话并执行您的新别名:
sorted-du /home
Run Code Online (Sandbox Code Playgroud)