2016-08-02 199 views
2

我正在使用此命令尝试删除非常大的文件夹中的所有Thumbs.db文件。我认为-f应强制删除而不要求确认,但我仍然在每个文件中提示“y”或“n”。`rm -f`请求确认,当别名为`rm -i`

find "megapacks" -name Thumbs.db -ok rm -f {} \; 

我试图type rm,看看是否有一个别名,并将其与

RM化名为'RM -i“

我尝试使用/bin/rm代替但我回应米仍然提示

find "megapacks" -name Thumbs.db -ok /bin/rm -f {} \; 

有没有人有不知道如何避免确认?

+1

使用'-delete'呢? – fedorqui

+0

请注意,别名不会扩展为命令的参数,这就是'rm'所处的位置。 – chepner

+0

'unalias rm'在你失去将枪指向脚的所有警告之前。 –

回答

4

问题是-ok选项是每man find

-exec询问用户第一。如果用户同意,请运行该命令。否则,只需返回false。

这应该为你工作与-exec

find "megapacks" -name Thumbs.db -exec /bin/rm -f {} \; 

或更快:

find "megapacks" -name Thumbs.db -exec /bin/rm -f {} + 
+1

谢谢你是完全正确的,这是解决它 – robjbrain

2

但我认为问题是,你传递给-okfind,这是

-exec而是先询问用户。

如果别名是问题,只是未设置别名:

unalias rm 

注意,这只是影响当前shell会话。

您还可以使用-delete选项find

find "megapacks" -name Thumbs.db -delete