我要从名称中包含“2”的目录中删除所有文件。 此命令工作做好管道rm命令
ls | grep [*2*]
,但是当我从命令的输出试着管rm命令
ls | grep [*2*] | rm
有错误“尝试`RM --help”以获取更多信息。”
请帮助
我要从名称中包含“2”的目录中删除所有文件。 此命令工作做好管道rm命令
ls | grep [*2*]
,但是当我从命令的输出试着管rm命令
ls | grep [*2*] | rm
有错误“尝试`RM --help”以获取更多信息。”
请帮助
管道输出从另一个命令RM必须使用xargs的commant为RM 试试这个
ls | grep [*2*] | xargs rm
输出将发送类似rm命令的参数
通过我的计数,你已经实例化了4个进程,而你可以在1中做到这一点? –
为什么不直接使用wildcarding in the shell?
例如
$ rm *2*
我不认为你需要的ls
或的grep
。您的上述问题源于您将输出管道输入到rm
的标准输入中,而您想要提供命令行参数至rm
。 rm
不会从标准输入读取。
您需要将每一行以rm命令的形式作为输入。为此,你需要xargs和管道。
修改命令就像ls -1 | grep [*2*] | xargs rm -rf
'rm'不会从stdin读取文件名;它们被作为命令行参数给出。 –