我希望获得du
整齐的列输出。
这是我得到的:
du -sh * | sort -hr
----
48M app
11M lib
6.7M image.jpg
1.1M image2.jpg
488K code.c
488K code.py
72K doc.txt
16K notes.txt
4.0K README.md
期望的输出与输出类似ls -lh
。
答案1
du
在大小列和名称列之间输出一个 <Tab> 字符。终端/控制台通常将 <Tab> 字符解释为移动到下一个字符位置,该位置是 8 的倍数。因此,您通常会du
以整齐的列形式获得输出,除非您的大小值为八个字符或更多,而使用此-h
选项几乎不可能。
您的控制台似乎配置为将 <Tab> 字符解释为移动到下一个字符位置,该位置是 4 的倍数。因此(在某种意义上)“正确”的答案是修复您的控制台,使其以正常方式处理制表符。
如果您不知道如何在终端中配置制表位,另一种方法是通过管道传输输出expand
:
du -sh * | sort -hr | expand