删除目录中所有符合模式的文件

删除目录中所有符合模式的文件

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

我有

ls | grep "-20" | rm -rf

但那不管用。有想法吗?

谢谢。

答案1

rm -- *-20*

如果文件 -20 存在,则 -- 停止将 -20 作为 rm 的参数处理。

答案2

你的问题

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

是您正在将文件名传输到标准输入,rmrm并未从标准输入读取。您需要使用xargs来反复调用,rm例如:

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

但实际上,您不想使用ls | grep来查找文件名。请使用find命令。

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

但当然正如另一位发帖者所说,最好的解决方案是rm -- *-20*

相关内容