Что делает rm -rf
при использовании для удаления файлов или каталогов?
Как делают -r
и -f
опции сотрудничают?
Команда rm -rf
совпадает с rm -r -f
.
От rm
страница справочника (тип man rm
в терминале для наблюдения его) -r
делает:
remove directories and their contents recursively
И -f
делает:
ignore nonexistent files and arguments, never prompt
Так в комбинации они делают обоих.
используйте эту команду с осторожностью!
В дополнение к предыдущему корректному ответу я хотел бы учить Вас, как ловить рыбу:
, Когда Вы не уверены в том, как команда работает, что имеют опции и что она делает, откройте терминал и тип
man <command>
, Например:
man rm
Однажды там, можно искать опцию. Страница справочника может быть действительно длинной для чтения, таким образом, в терминальном типе:
/<pattern>
Так, например, делая:
/-f
можно легко приземлиться к:
-f, --force
ignore nonexistent files and arguments, never prompt
Для-r сделайте:
-r, -R, --recursive
remove directories and their contents recursively
можно переместиться между результатами поиска с помощью n
(следующий) и N
(предыдущий).
, Если необходимо сделать что-то, но Вы не знаете, что название команды, использование apropos
ищет в страницах справочника:
apropos <pattern>
, Например:
apropos directory listing
rm
коротко для, удаляют. Эти r
флаг должен удалить каталоги и их содержание рекурсивно и f
сила средств, и это переопределяет любые подсказки подтверждения.
Как был уже упомянут, rm -rf <ARG>
предназначен для мощного удаления файлов рекурсивно, где <ARG>
каталог (хотя это может быть файл очень хорошо).
Смысл -r
(рекурсивное удаление), это rm
не может удалить каталоги, если они не пусты, просто потому что базовый системный вызов который rm
использование (удаляет связь), воздействует только на пустые каталоги. Таким образом, что -r
флаг делает, поиск в глубину, убывающий в каталоги и удаляющий файлы сначала, и только затем, когда каталог будет пуст - он удалит его. Этот тот же эффект достигается через find
команда с -delete
флаг (когда Вы не указываете фильтрацию по -type
, но это - другая история).
Что касается -f
, это делает две вещи - каждый предотвращает запрос того, хотите ли Вы удалить файл или не (такой как тогда, когда Вы удаляете файл, принадлежавший другому пользователю из Вашего каталога, это не покажет rm: remove write-protected regular empty file 'f1'?
подсказка подтверждения), и игнорирует несуществующие файлы. Так, например, с несуществующим именем файла, необходимо добраться rm: cannot remove 'nonexistent': No such file or directory
ошибка.
См. также: