为什么“find . -iname "*.jpg" -type f -print0 | xargs -0 rm * ”会删除所有文件?

为什么“find . -iname "*.jpg" -type f -print0 | xargs -0 rm * ”会删除所有文件?

预期的行为是删除所有 .jpg,但它删除了目录中的所有文件。

如何改变命令来查找并删除所有 xyz 文件?

答案1

你执行了rm * result1.jpg result2.jpg result3.jpg ...不是 rm result1.jpg result2.jpg result3.jpg ...,从而删除*通过 shell 扩展匹配的所有内容。

但您甚至不需要xargs执行这个简单的任务。


find ... -type f -print如果您对自己的表达没有信心,请先运行。确保您喜欢结果。

然后,运行find ... -type f -delete

相关内容