为什么不起作用echo * | rm -f
?根据我的理解,echo *
应该列出目录中的所有文件,管道应该将此列表作为参数发送给rm -f
命令,该命令应该删除文件。我错过了什么?
小智 7
管道将数据发送到标准输入。而不是参数列表。这是两个非常不同的概念。
参数是命令行之后的内容。Stdin 基本上就像一个已经打开的文件,您可以从中读取。
另请注意,做这样的事情:echo * | xargs rm -f
是个坏主意,因为如果文件名中有空格或开头带有“-”,它可能会做奇怪的事情。