【发布时间】:2014-04-24 13:53:56
【问题描述】:
我尝试通过将一些图像与正则表达式匹配来删除它们,现在我以两种类似的方式执行此操作,都包括将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”,在 find 手册页中搜索“remove”,但没有发现任何重要信息。
【问题讨论】:
-
你能从
ls中拿出这些图片吗? -
还有很多,这是最后几行:
yellow-zone-etna-36x36.png yellow-zone-etna-615x250.png yellow-zone-etna.png Yuri-Beletsky-comets_labels_1362113263.jpg ZANE-115x115.png ZANE-150x150.png ZANE-195x110.png ZANE-300x195.png ZANE-36x36.png ZANE-610x250.png Zane-AIRS1-.jpg ZANE-cimss.jpg ZANE-JTWC-forecast-track-115x115.png ZANE-JTWC-forecast-track-150x150.png ZANE-JTWC-forecast-track-195x110.png ZANE-JTWC-forecast-track-300x170.png ZANE-JTWC-forecast-track-36x36.png ZANE-JTWC-forecast-track-610x250.png ZANE-JTWC-forecast-track.png ZANE-MTSAT-vis0.jpg ZANE.png -
我不这么认为,当我在备份文件夹中运行原始的
find . -type f -regex ".+-[0-9]+x[0-9]+\.jpg"时,它会找到具有多个数字的图像(加号在那里,它似乎工作) -
我建议删除这个问题——它的答案不太可能对其他搜索有关使用
find进行删除的信息的人有所帮助。 (此外,问题和接受的答案都展示了不好的做法;与find ... -print0 | xargs -0 -- rm -rf --或find ... -exec rm -rf -- {} +相比,find | xargs rm是不好的做法;给出的现有方法在遇到异常文件名时会出现错误)。 -
当然。我无法删除它,但我按照弹出窗口的建议将其标记为审核。