por que a declaração abaixo não solicita confirmação ao usar a opção i ou I para rm?
// pass aggregated
find . -name $name -type d -exec rm -irf {} \;
// pass each
find . -name $name -type d -exec rm -irf {} +
A -i
opção pede confirmação, mas a -f
opção a seguir em seu comando a substitui, desativando a caixa de diálogo de confirmação.
Observar:
$ rm -fri file1
rm: remove regular empty file 'file1'? n
$ rm -irf file1
$
Se a primeira forma acima, -f
aparecer primeiro e -i
depois. Conseqüentemente, -i
substitui -f
e rm
solicita confirmação.
Na segunda forma acima, -i
aparece primeiro e -f
depois. Nesse caso, -f
substituições e nenhuma caixa de diálogo de confirmação é exibida.
De man rm
:
-f, --force
ignora arquivos e argumentos inexistentes, nunca solicita-i
prompt antes de cada remoção-Eu
solicito uma vez antes de remover mais de três arquivos ou ao remover recursivamente; menos invasivo que -i, enquanto ainda protege contra a maioria dos erros
-f
. A opção-i
fornece mais proteção que-I
. Se você estiver usando-i
, entãofind ...\;
efind ...+
ambos são igualmente seguros, sendo o mais tarde eficiente em termos computacionais.