结果ls
是 之间的差异*
?例如:
ls | du -sh
将只显示当前目录的总大小的一行。
du -sh *
将显示当前目录中每个文件或子目录的大小。
为什么结果不一样?
ls | du -sh
只报告的大小,.
因为du
不支持从标准输入读取目录名称。
因此,执行会ls | du -sh
浪费ls
并给出与仅运行相同的结果du -sh
。
du -sh
不从标准输入读取。所以whatever | du -sh
是一样的du -sh
。
du -sh *
但是扩展为du -sh file1.txt file2.txt file3.txt
file1.txt, ... 是当前目录中的文件/目录。
当为du -sh
输出指定多个文件时,将显示每个文件的总和,而du -sh
仅显示当前目录的总和。
您可能会考虑将to的输出作为参数du $(ls)
实际传递。但这可能不是一个好主意,因为文件名可能很难看(包含空格,甚至换行符等)并且只会对此感到困惑。ls
du
du
考虑结合find
anddu
代替。