“ls”如何工作比较“*”



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

为什么结果不一样?

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

du -sh不会从标准输入中读取。所以whatever | du -shdu -sh一样.

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

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

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

请考虑将finddu结合起来。

相关内容

  • 没有找到相关文章

最新更新