大家好 我正在尝试使用ubuntu中的 find 命令删除Windows分区中的所有thumbs.db文件:
find . -iname "*.db"|while read junk;do rm -rfv $junk;done
但它不适合我,没有任何反应! 我之前在Ubuntu的早期版本上删除了我的垃圾文件,但是现在在最新版本的Ubuntu上我不能。 我的命令中有没有错误?
答案 0 :(得分:38)
我这样做:
find . -iname 'thumbs.db' -exec rm -rfv {} +
这样,即使您的目录名称中包含空格,它仍然有效。
答案 1 :(得分:30)
只是把它扔出去
find . -name "*.pyc" -delete
答案 2 :(得分:6)
我不确定您使用while
的原因。
find . -iname 'thumbs.db' -exec rm -rfv {} \;
...应该足够了(只删除你想要的文件,而不是任何可能存在的BDB文件)。
答案 3 :(得分:1)
代码看起来不错,适用于arch和debian。也许没有匹配“* .db”的文件?
作为旁注:删除所有带有后缀“.db”的文件可能不是一个好主意,因为您可能会意外删除除“Thumbs.db”之外的其他文件
答案 4 :(得分:0)
首先检查命令的第一部分,即:
找到。 -iname“* .db”
正在返回任何内容。
如果有,那么您可以按如下方式使用xargs
来完成任务:
找到。 -iname“* .db”| xargs rm -rfv
更新:从评论中,这是不安全的,特别是如果目录/文件名中有空格。您需要使用-print0
/ xargs -0
来确保安全。