删除所有匹配目录中的模式的文件

如何删除当前目录下文件名中包含-20所有文件?

我有

 ls | grep "-20" | rm -rf 

但是这不起作用。 想法?

谢谢。

 rm -- *-20* 

如果文件-20存在,停止-20将被视为rm的参数。

你的问题

 ls | grep "-20" | rm -rf # DOESN'T WORK 

是你pipe道文件名rmrm不读取标准input。 您需要使用xargs重复调用rm ,如下所示:

 ls | grep '-20' | xargs rm -rf 

但是真的,你不想用ls | grep ls | grepfind文件名。 使用find命令。

 find . -name '*-20' | xargs rm -rf 

当然,正如其他海报所说,最好的解决scheme是rm -- *-20*