1

почему нижеприведенное утверждение не запрашивает подтверждения при использовании опции i или I для rm?

// pass aggregated 
find . -name $name -type d -exec rm -irf {} \;
// pass each
find . -name $name -type d -exec rm -irf {} +

1 ответ1

0

Параметр -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, но при этом защищает от большинства ошибок

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .