gpt4 book ai didi

linux - 为什么 du 或 echo 流水线不起作用?

转载 作者:IT王子 更新时间:2023-10-29 00:39:14 24 4
gpt4 key购买 nike

我正在尝试对当前目录中的每个目录使用 du 命令。所以我正在尝试使用这样的代码:

ls | du -sb

但它没有按预期工作。它仅输出当前“.”的大小。目录,仅此而已。echo 也是一样

ls | echo

输出空行。为什么会这样?

最佳答案

使用管道将第一个命令的输出 (stdout) 发送到子进程(第二个命令)的 stdin (输入)。您提到的命令不会对 stdin 进行任何输入。例如,这可以与 cat 一起工作(并且通过工作,我的意思是像 cat 一样工作,不带参数运行,只传递你给它的输入):

ls | cat

对于您的应用程序,这就是 xargs 发挥作用的地方。它接受管道输入并将其作为参数提供给指定的命令。所以,你可以让它像这样工作:

ls | xargs du -sb

请注意,默认情况下 xargs 会在空格处打断输入,因此如果您的文件名包含空格,这将无法正常工作。因此,在这种特殊情况下,这样会更好:

du -sb *

关于linux - 为什么 du 或 echo 流水线不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9297723/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com