почему нижеприведенное утверждение не запрашивает подтверждения при использовании опции i или I для rm?
// pass aggregated
find . -name $name -type d -exec rm -irf {} \;
// pass each
find . -name $name -type d -exec rm -irf {} +
Параметр -i
запрашивает подтверждение, но параметр -f
который следует в вашей команде, переопределяет его, отключая диалоговое окно подтверждения.
Заметим:
$ rm -fri file1
rm: remove regular empty file 'file1'? n
$ rm -irf file1
$
Если первая форма выше, -f
появляется первым, а -i
последним. Следовательно, -i
переопределяет -f
и rm
запрашивает подтверждение.
Во второй форме выше, -i
появляется первым и -f
последним. В этом случае -f
переопределяет и диалог подтверждения не появляется.
От man rm
:
-f, --force
игнорировать несуществующие файлы и аргументы, никогда не запрашивать-я
подскажите перед каждым удалением-Я
запрашивать один раз перед удалением более трех файлов или при рекурсивном удалении; менее навязчив, чем -i, но при этом защищает от большинства ошибок