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 {} +
-i
Opcja pyta o potwierdzenie, ale -f
opcja, 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 -f
pojawia się pierwszy i -i
drugi. W związku z tym -i
zastępuje -f
i rm
prosi o potwierdzenie.
W drugiej formie powyżej -i
pojawia się pierwsza i -f
druga. W takim przypadku -f
zastąpienia i nie pojawia się okno dialogowe potwierdzenia.
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
-f
. Ta opcja-i
zapewnia większą ochronę niż-I
. Jeśli używasz-i
, tofind ...\;
ifind ...+
oba są równie bezpieczne, a później są bardziej wydajne obliczeniowo.