linux – 为什么du或echo pipelining不起作用?
发布时间:2020-12-13 19:25:50 所属栏目:Linux 来源:网络整理
导读:我正在尝试对当前目录中的每个目录使用du命令.所以我试图使用这样的代码: ls | du -sb 但它没有按预期工作.它仅输出当前’.’的大小.目录,那就是全部. 回声同样如此 ls | echo 输出空行.为什么会这样? 解决方法 使用管道将第一个命令的输出(stdout)发送到
我正在尝试对当前目录中的每个目录使用du命令.所以我试图使用这样的代码:
ls | du -sb 但它没有按预期工作.它仅输出当前’.’的大小.目录,那就是全部. ls | echo 输出空行.为什么会这样? 解决方法
使用管道将第一个命令的输出(stdout)发送到子进程的stdin(输入)(第二个命令).您提到的命令不会对stdin进行任何输入.例如,这可以用于cat(并且通过工作,我的意思是像没有参数的cat一样运行,只是传递你给它的输入):
ls | cat 对于您的应用程序,这是xargs的用武之地.它接受管道输入并将其作为指定命令的参数.所以,你可以让它像: ls | xargs du -sb 请注意,默认情况下,xargs将在空格中断开其输入,因此如果您的文件名包含空格,则无法按您的意愿工作.所以,在这种特殊情况下,这会更好: du -sb * (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读