rm

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

rm (от англ. remove) — утилита в UNIX и UNIX-подобных системах, используемая для удаления файлов из файловой системы. Ключи, использующиеся с rm:

  • -r — обрабатывать все вложенные подкаталоги. Данный ключ необходим, если удаляемый файл является каталогом, пусть даже пустым. Если удаляемый файл не является каталогом, то ключ -r не влияет на команду rm.
  • -i — выводить запрос на подтверждение каждой операции удаления.
  • -f — не возвращать код ошибочного завершения, если ошибки были вызваны несуществующими файлами; не запрашивать подтверждения операций.

Например, команда rm -rf mydir рекурсивно удалит без подтверждения и кода ошибочного завершения файл (или каталог) mydir.

rm часто является синонимом команды rm -i, то есть команда по умолчанию запрашивает подтверждение перед удалением файлов, что позволяет предотвратить их случайное удаление. Если пользователю нужно удалить большое количество файлов без подтверждения операции, можно отменить действие ключа -i с помощью добавления ключа -f.

Удаление корневого каталога[править | править код]

Иногда, в различных конференциях более опытные пользователи, при просьбе дать совет менее опытному, предлагают ввести в консоль команду sudo rm -rf /, которая, в свою очередь, удаляет всё содержимое корневой папки. По этому поводу существует шутка, т. н. «патч Бармина», гласящая, что данная команда является универсальным способом починить любые проблемы в SCO Unix.

Компания Sun реализовала защиту от rm -rf / в Solaris 10, выпущенном в 2005 году[1]. При выполнении команды система теперь сообщает, что удаление / не разрешено. Вскоре после этого такая же функциональность была реализована в команде rm, поставляемой с FreeBSD. GNU не выполняет команду rm -rf /, если не указан параметр --no-preserve-root[2]. Такое поведение было реализовано в пакете GNU Core Utilities версии 6.4, выпущенном в 2006 году.

Команда rm -rf /, даже без приставки sudo может повредить UEFI[3].

См. также[править | править код]

Примечания[править | править код]