Библиотека сайта rus-linux.net
8 примеров использования команды rm (для начинающих)
Оригинал: Linux rm Command Explained for Beginners (8 Examples)
Автор: Himanshu Arora
Дата публикации: 22 января 2018 года
Перевод: А. Кривошей
Дата перевода: июль 2018 г.
Удаление файлов является фундаментальной операцией, подобно копированию файлов или их переименованию/перемещению. В Linux имеется специальная команда - rm, которая позволяет выполнять все операции, связанные с удалением. В этом руководстве мы обсудим основы использования этой утилиты вместе с некоторыми понятными примерами.
Но прежде чем мы это сделаем, необходимо отметить, что все примеры, упомянутые в статье, были протестированы в Ubuntu 16.04 LTS.
Команда rm
Простыми словами мы можем сказать, что команда rm используется для удаления файлов и каталогов. Ниже приведен синтаксис команды:
rm [OPTION]... [FILE]...
И вот как описывает ее man-страница утилиты:
На этой странице руководства представлена версия GNU rm. Команда rm удаляет каждый указанный файл. По умолчанию она не удаляет каталоги.
Если задан параметр -I или --interactive = once, и есть более трех файлов или задан параметр -r, -R, или --recursive, тогда rm запрашивает у пользователя, следует ли продолжать операцию. Если ответ не утвердительный, вся команда прерывается.
В противном случае, если запись в файл не разрешена, стандартный ввод - терминал, а параметр -f или --force не указан, или задан параметр -i или --interactive = always, rm запрашивает у пользователя, следует ли удалить файл. Если ответ отрицательный, файл пропускается.
Следующие примеры в стиле вопрос/ответ помогут вам лучше понять, как работает данная утилита.
Q1. Как удалить файлы с помощью команды rm?
Это очень просто. Все, что вам нужно сделать - передать имя файла (вместе с путями, если он не находится в текущем рабочем каталоге), как ввод для команды rm.
$ rm [filename]
Например:
$ rm testfile.txt

Q2. Как удалить каталоги с помощью команды rm?
Если вы пытаетесь удалить каталог, вам необходимо использовать параметр командной строки -r. В противном случае rm выдаст ошибку, указывающую, что вы пытаетесь удалить каталог.
$ rm -r [dir name]
Например:
$ rm -r testdir

Q3. Как сделать, чтобы rm запрашивала подтверждение перед каждым удалением?
Если вы хотите, чтобы rm запрашивала подтверждение перед каждым удалением, используйте опцию -i командной строки.
$ rm -i [file or dir]
Например, предположим, что вы хотите удалить каталог testdir и все его содержимое, но хотите, чтобы rm запрашивала подтверждение перед каждым удалением, вот как вы можете это сделать:
$ rm -r -i testdir

Q4. Как заставить rm игнорировать несуществующие файлы?
Команда rm позволяет узнать о том, что вы пытаетесь удалить несуществующий файл или каталог с помощью сообщения об ошибке.

Однако, если хотите, вы можете заставить rm не выдавать такую ошибку/уведомление - все, что вам нужно сделать, это использовать опцию командной строки -f.
$ rm -f [filename]

Q5. Как сделать запрос rm на подтверждение удаления только в некоторых скриптах?
Существует опция командной строки -I, которая при ее использовании позволяет сразу же запрашивать подтверждение перед удалением более трех файлов или при рекурсивном удалении.
Например, следующий снимок экрана показывает эту опцию в действии - при удалении двух файлов запроса на подтверждение не было, но он появился при удалении более трех файлов.

Q6. Как rm работает с корневым каталогом?
Конечно, удаление корневого каталога - это последнее, чего захочет пользователь Linux. Поэтому команда rm не позволяет выполнять операцию рекурсивного удаления в этом каталоге по умолчанию.

Однако, если вы хотите продолжить эту операцию по какой бы то ни было причине, вам нужно сообщить об этом rm с помощью опции -no-preserve-root. Когда эта опция включена, rm не выделяет корневой каталог (/) среди прочих.
Если вы хотите узнать о сценариях, в которых пользователь может удалить корневой каталог своей системы, почитайте об этом .
Q7. Как заставить rm удалять только пустые каталоги?
Если вы хотите ограничить возможность удаления каталога rm только пустым каталогом, вы можете использовать опцию командной строки -d.
$ rm -d [dir]
На следующем скриншоте показан параметр командной строки -d в действии - удалена только пустая директория.

Q8. Как заставить rm выводить детали работы, которые она выполняет?
Если вы хотите, чтобы rm отображала подробную информацию о выполняемой операции, это можно сделать, используя опцию -v командной строки.
$ rm -v [file or directory name]
Пример:

Заключение
Учитывая ту функциональность, которую она предлагает, rm является одной из наиболее часто используемых команд в Linux (вместе с cp и mv). Здесь мы рассмотрели почти все основные параметры командной строки, которые предоставляет эта утилита. Для получения дополнительной информации перейдите на страницу руководства команды.
Обращаясь к команде rm вы должны знать, что ее использование в некоторых случаях очень опасно. Прежде чем применять эту команду, прочитайте следующую статью: "Восемь опасных команд, которые никогда не следует выполнять в Linux". А для полноты картины можете перечитать перевод man-страницы о команде rm.
