`ls`如何比```更好?

问题描述 投票:0回答:3

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

为什么结果不一样?

bash terminal ls du
3个回答
3
投票

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


1
投票

du -sh不读取stdin。所以whatever | du -shdu -sh一样。

然而,du -sh *扩展到du -sh file1.txt file2.txt file3.txt,其中file1.txt,...是当前目录中的文件/目录。

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


0
投票

您可能会考虑像du $(ls)这样的东西将ls的输出实际传递给du作为参数。但这可能不是一个好主意,因为文件名可能是丑陋的(包含空格,甚至换行符等),而du只会被此混淆。

考虑将finddu组合起来。

© www.soinside.com 2019 - 2024. All rights reserved.