rm -irf -Irf com a localização

1

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 {} +
ceph3us
fonte

Respostas:

0

A -iopção pede confirmação, mas a -fopçã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, -faparecer primeiro e -idepois. Conseqüentemente, -isubstitui -fe rmsolicita confirmação.

Na segunda forma acima, -iaparece primeiro e -fdepois. Nesse caso, -fsubstituições e nenhuma caixa de diálogo de confirmação é exibida.

Documentação

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

John1024
fonte
1
por isso deve ser apenas -ir ou -ir :) sem forçar
ceph3us
e qual seria a melhor maneira (correspondência) de proteger contra exclusão prejudicial usando -I ou -i e + ou \; ?
ceph3us
@ ceph3us Sim, omita o -f. A opção -ifornece mais proteção que -I. Se você estiver usando -i, então find ...\;e find ...+ambos são igualmente seguros, sendo o mais tarde eficiente em termos computacionais.
precisa saber é o seguinte