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

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


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.