0

结果ls是 之间的差异*?例如: ls | du -sh 将只显示当前目录的总大小的一行。 du -sh * 将显示当前目录中每个文件或子目录的大小。

为什么结果不一样?

4

3 回答 3

3

ls | du -sh只报告的大小,.因为du不支持从标准输入读取目录名称。
因此,执行会ls | du -sh浪费ls并给出与仅运行相同的结果du -sh

于 2016-06-07T11:09:25.427 回答
1

du -sh不从标准输入读取。所以whatever | du -sh是一样的du -sh

du -sh *但是扩展为du -sh file1.txt file2.txt file3.txtfile1.txt, ... 是当前目录中的文件/目录。

当为du -sh输出指定多个文件时,将显示每个文件的总和,而du -sh仅显示当前目录的总和。

于 2016-06-07T11:10:16.017 回答
0

您可能会考虑将to的输出作为参数du $(ls)实际传递。但这可能不是一个好主意,因为文件名可能很难看(包含空格,甚至换行符等)并且只会对此感到困惑。lsdudu

考虑结合findanddu代替。

于 2019-03-18T13:04:00.203 回答