使用find命令问题在Linux上批量查找和删除文件

大家好,我试图删除在Windows分区使用查找命令在Ubuntu的所有thumbs.db文件:

find . -iname "*.db"|while read junk;do rm -rfv $junk;done 

但它不适合我,没有任何反应! 我做了这个伎俩,删除我的垃圾文件之前的Ubuntu版本,但现在在最新版本的Ubuntu我不能。 我的命令有没有错误?

Solutions Collecting From Web of "使用find命令问题在Linux上批量查找和删除文件"

我会这样做:

 find . -iname 'thumbs.db' -exec rm -rfv {} + 

这样,即使您的目录名称中包含空格,它仍然有效。

只是把这个扔在那里

 find . -name "*.pyc" -delete 

我不确定你为什么使用。

 find . -iname 'thumbs.db' -exec rm -rfv {} \; 

…应该就足够了(并且只能删除你想要的文件,而不是任何可能正在铺设的BDB文件)。

代码看起来不错,适用于arch和debian。 也许没有匹配“* .db”的文件?

作为旁注:我可能不是一个好主意,删除后缀“.db”的所有文件,因为您可以意外删除“Thumbs.db”以外的其他文件

首先检查你的命令的第一部分,即:

找 。 -iname“* .db”

返回任何东西。

如果是这样,那么你可以使用xargs来完成你的任务:

找 。 -iname“* .db”| xargs rm -rfv

更新:从注释,这是不安全的,特别是如果目录/文件名称中有空格。 您将需要使用-print0 / xargs -0来使其安全。