为什么在使用选项 i 或 I 进行 rm 时下面的语句不要求确认?
// pass aggregated
find . -name $name -type d -exec rm -irf {} \;
// pass each
find . -name $name -type d -exec rm -irf {} +
答案1
该-i
选项要求确认,但-f
命令中后面的选项将覆盖它,从而关闭确认对话框。
观察:
$ rm -fri file1
rm: remove regular empty file 'file1'? n
$ rm -irf file1
$
如果出现上述第一种形式,则-f
先出现,-i
后出现。因此,-i
覆盖-f
并rm
要求确认。
在上述第二种形式中,-i
首先出现,-f
然后出现。在这种情况下,-f
将覆盖并且不会出现确认对话框。
文档
从man rm
:
-f,--force
忽略不存在的文件和参数,从不提示-我
每次删除前都会提示-我
在删除三个以上文件之前或递归删除时提示一次;比 -i 干扰更小,同时仍能防止大多数错误