rm -irf -Irf z find

1

dlaczego poniższe oświadczenie nie pyta o potwierdzenie podczas korzystania z opcji i lub I dla rm?

// pass aggregated 
find . -name $name -type d -exec rm -irf {} \;
// pass each
find . -name $name -type d -exec rm -irf {} +
ceph3us
źródło

Odpowiedzi:

0

-iOpcja pyta o potwierdzenie, ale -fopcja, która następuje w komendzie zastąpi go wyłączyć okno potwierdzenia.

Przestrzegać:

$ rm -fri file1
rm: remove regular empty file 'file1'? n
$ rm -irf file1
$ 

Jeśli pierwszy formularz powyżej -fpojawia się pierwszy i -idrugi. W związku z tym -izastępuje -fi rmprosi o potwierdzenie.

W drugiej formie powyżej -ipojawia się pierwsza i -fdruga. W takim przypadku -fzastąpienia i nie pojawia się okno dialogowe potwierdzenia.

Dokumentacja

Od man rm:

-f, --force
ignoruje nieistniejące pliki i argumenty, nigdy nie pytaj

-i
pyta przed każdym usunięciem

-Pytam
raz przed usunięciem więcej niż trzech plików lub podczas usuwania rekurencyjnego; mniej uciążliwe niż -i, a jednocześnie zapewnia ochronę przed większością błędów

John1024
źródło
1
więc powinno to być tylko -ir lub -Ir :) bez wymuszania
ceph3us
i jaki byłby najlepszy sposób (dopasowanie) ochrony przed szkodliwym usunięciem za pomocą -I lub -i i + lub \; ?
ceph3us
@ ceph3us Tak, pomiń -f. Ta opcja -izapewnia większą ochronę niż -I. Jeśli używasz -i, to find ...\;i find ...+oba są równie bezpieczne, a później są bardziej wydajne obliczeniowo.
John1024,