Утилиты CLI, манипулирование файлами: команды rm и rmdir
Смысл удаления файлов аналогичен их пеоремещнию -- с самими файлами при этом ничего не происходит, а изменяются содержащие их каталоги. Удаление файлов выполняется командой
$ rm filename
в которой аргументов, означающих имена подлежащих удалению файлов, может быть произвольное количество. Как и при перемещении, при этом не затрагиваются ни метаданные, ни данные файлов, а только удаляются их имена из родительских каталогов. И потому для удаления файлов опять же не обязательно иметь какие-либо права в их отношении -- достаточно прав на изменение содержащих их каталогов.
Командой rm
файлы-аргументы будут удалены в общем случае без предупреждения. Подобно командам cp
и mv
, для команды rm
предусмотрены опции -i
(запрос на подтверждение) и -f
(принудительное удаление вне зависимости от настроек оболочки).
Интересный момент -- удаление случайно созданных файлов с именами, "неправильными" с точки зрения системы или командной оболочки. Примером этого могут быть имена, начинающиеся с символа дефиса. Если попробовать сделать это обычным образом
$ rm -file
в ответ последует сообщение об ошибке типа
rm: illegal option -- l
то есть имя файла будет воспринято как опция. Для предотвращения этого такое "неправильное" имя следует предварить символом двойного дефиса и пробелом, означающими конец списка опций:
$ rm -- -file
В принципе, команда rm
ориентирована на удаление обычных и прочих файлов, но не каталогов. Однако с опцией -d
она в состоянии справиться и с этой задачей -- в случае, если удаляемый каталог пуст. Наконец, опция -R
(или -r
) производит рекурсивное удаление каталогов со всеми их файлами и вложенными подкаталогами.
Это делает использование опции -R
весьма опасным: возможно, набивший оскомину пример
$ rm -R /
когда при наличии прав суперпользователя уничтожается вся файловая система, и утрирован, но в локальном масштабе такая операция более чем реальна.
Специально для удаления каталогов предназначена команда
$ rmdir
которая способна удалить только пустой каталог. Кроме того, с опцией -p
она может сделать это и в отношении каталогов родительских -- но также только в том случае, если они не содержат файлов.
Содержание . .