В документации для rm
я заметил, что rm --help
следующий флаг:
--no-preserve-root do not treat `/' specially
Что это значит? Можно ли вообще удалить корневой каталог, кроме его содержимого? Какие последствия это будет иметь?
Вы не можете удалить сам корневой каталог. Однако вы можете использовать рекурсивный режим rm, чтобы удалить все в этом каталоге - печально известную команду rm -rf /
.
Режим "сохранить корень" не позволяет rm
рекурсивно работать в корневом каталоге:
$ sudo rm -rf /
rm: it is dangerous to operate recursively on ‘/’
rm: use --no-preserve-root to override this failsafe
Параметр --preserve-root
был добавлен в GNU rm в 2003 году (коммит 9be74f6f125b2be) и был установлен по умолчанию в 2006 году (коммит aff5a4f2ab86f).
Некоторые говорят, что это потому, что шутники в #ubuntu продолжали говорить новичкам, что нужно запустить rm -rf /
- и многие это сделали. Некоторые говорят, что это потому, что слишком легко rm -rf / tmp/junk
. Некоторые говорят, что это предотвращает несчастные случаи при запуске rm -rf $dir/
когда $ dir пуст. Все, что мы знаем, его зовут
В любом случае, сегодня это часть требований POSIX. Solaris rm
также имеет аналогичную защиту, как и OpenBSD.