我运行了两个单独的命令,每个命令产生了不同的数字。谁能帮我找出原因?
find -type d -name *log* | du -hcs
find . -type d -name '*log*' -print0 | xargs -0 du -hcs
我敢肯定,拒绝投票的人以为找出原因的方法是
满都并想知道为什么您没有阅读该手册。
具有讽刺意味的是,尽管对于BSD确实如此,但在Linux发行版中,这并不是找出原因,因为GNU手册页缺少了一些相当基本的内容。Linux用户必须运行
info coreutils du看到其中有一个非常重要的句子的文档。
这是BSDdu
命令手册页的第二句话(在OpenBSD中为第三句话)。
因此,即使您的通配符(在命令中而不是在答案中提供的更正版本)在find
命令中(可能)错误地扩展,也不会造成任何差异。无论您的find
命令写入其标准输出什么,该du
命令都会完全忽略它。
从手册中可以清楚地看到正在发生的情况,并结合该答案在其第三点中已经说过的内容,应该非常明显地看出为什么您在命令和已更正的命令之间会看到不同的行为和结果。准备踢自己。☺
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句