我运行了两个不同的命令,每个命令都产生了不同的数字。有人能帮我找出原因吗?
find -type d -name *log* | du -hcs
find . -type d -name '*log*' -print0 | xargs -0 du -hcs
答案1
我确信反对者认为找出原因的方法是
曼杜并想知道你为什么没有阅读手册。
讽刺的是,虽然这对于 BSD 来说确实如此,但在 Linux 发行版中,这并不是找出答案的方法,因为 GNU 手册页缺少一些相当基本的内容。Linux 用户必须运行
核心实用信息查看包含一个非常重要的句子的文档。
这是 BSD 命令手册页的第二句(OpenBSD 中是第三句)du
。
因此,即使您的通配符(在您的命令中而不是在答案中给您的更正版本)在您的find
命令中(可能)被错误地扩展,但这不会产生任何差异。 任何您的find
命令写入其标准输出,它会被du
命令完全忽略。
从手册中,明确说明了正在发生的事情,并结合了已经声明在该答案的第三点中,您应该可以清楚地看到为什么您看到的命令和更正后的命令之间的行为和结果不同。准备好自责吧。☺