0

我对 Linux 的书呆子用法有点陌生。我现在正在玩流水线。谁能告诉我为什么这不起作用:

ls | grep 2 | rm

(我试图删除名称中包含 2 的所有文件)该ls | grep 2部分正在工作(它返回所有带有 2 的文件名)为什么我现在不能通过管道将这些名称rm删除以删除这些文件?

提前感谢您的四位帮助:)

4

1 回答 1

2

rm期望文件名作为参数,而管道将文件名发送rm. 您可以改为:

rm $(ls | grep 2)

删除文件。这样,文件名作为参数传递,而不是传递给rm.

我已经使用你的命令来解释这个问题。通常,您不应该解析ls命令的结果。

于 2014-04-02T15:39:10.087 回答