`find`声称它删除了文件,'ls`声称它没有

时间:2014-04-24 13:53:57

标签: linux shell rm

我尝试通过将它们与正则表达式匹配来删除一些图像,我现在以两种类似的方式执行此操作,包括将find的结果汇总到rm。首先,我发现了我希望删除的所有图像:

find . -type f -regex ".+-[0-9]+x[0-9]+\.jpg"

其中发现了很多结果。

所以我试着删除它们:

find . -type f -regex ".+-[0-9]+x[0-9]+\.jpg" -exec rm -rf {} \;

然后像这样:

find . -type f -regex ".+-[0-9]+x[0-9]+\.jpg" | xargs rm

两次尝试后,find命令不再看到我想要删除的图像(当我再次运行第一个命令时),但ls看到它们,Nautilus也是如此。我是否应该运行某种提交才能将它们从硬盘中删除?

我尝试在rm手册页中搜索" commit"和{34}的find手册页删除",但没有发现任何重要内容。

1 个答案:

答案 0 :(得分:1)

你的正则表达式与这些文件名不匹配......

$ touch yellow-zone-etna-36x36.png yellow-zone-etna-615x250.png
$ find . -type f -regex ".+-[0-9]+x[0-9]+\.jpg"
$ # no output

因为你有PNG,你正在寻找JPEG,而且你还有与正则表达式不匹配的JPEG。