Наши партнеры

UnixForum





Библиотека сайта 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]

игнорирование несуществующих файлов 2

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.