我对 Linux 的书呆子用法有点陌生。我现在正在玩流水线。谁能告诉我为什么这不起作用:
ls | grep 2 | rm
(我试图删除名称中包含 2 的所有文件)该ls | grep 2
部分正在工作(它返回所有带有 2 的文件名)为什么我现在不能通过管道将这些名称rm
删除以删除这些文件?
提前感谢您的四位帮助:)
我对 Linux 的书呆子用法有点陌生。我现在正在玩流水线。谁能告诉我为什么这不起作用:
ls | grep 2 | rm
(我试图删除名称中包含 2 的所有文件)该ls | grep 2
部分正在工作(它返回所有带有 2 的文件名)为什么我现在不能通过管道将这些名称rm
删除以删除这些文件?
提前感谢您的四位帮助:)
rm
期望文件名作为参数,而管道将文件名发送到rm
. 您可以改为:
rm $(ls | grep 2)
删除文件。这样,文件名作为参数传递,而不是传递给rm
.
我已经使用你的命令来解释这个问题。通常,您不应该解析ls
命令的结果。