Команда rm в linux

Обновлено: 05.07.2024

Оригинал: Linux rm Command Explained for Beginners (8 Examples)
Автор: Himanshu Arora
Дата публикации: 22 января 2018 года
Перевод: А. Кривошей
Дата перевода: июль 2018 г.

Удаление файлов является фундаментальной операцией, подобно копированию файлов или их переименованию/перемещению. В Linux имеется специальная команда - rm, которая позволяет выполнять все операции, связанные с удалением. В этом руководстве мы обсудим основы использования этой утилиты вместе с некоторыми понятными примерами.

Но прежде чем мы это сделаем, необходимо отметить, что все примеры, упомянутые в статье, были протестированы в Ubuntu 16.04 LTS.

Команда rm

Простыми словами мы можем сказать, что команда rm используется для удаления файлов и каталогов. Ниже приведен синтаксис команды:

И вот как описывает ее man-страница утилиты:

На этой странице руководства представлена версия GNU rm. Команда rm удаляет каждый указанный файл. По умолчанию она не удаляет каталоги.
Если задан параметр -I или --interactive = once, и есть более трех файлов или задан параметр -r, -R, или --recursive, тогда rm запрашивает у пользователя, следует ли продолжать операцию. Если ответ не утвердительный, вся команда прерывается.
В противном случае, если запись в файл не разрешена, стандартный ввод - терминал, а параметр -f или --force не указан, или задан параметр -i или --interactive = always, rm запрашивает у пользователя, следует ли удалить файл. Если ответ отрицательный, файл пропускается.

Следующие примеры в стиле вопрос/ответ помогут вам лучше понять, как работает данная утилита.

Q1. Как удалить файлы с помощью команды rm?

Это очень просто. Все, что вам нужно сделать - передать имя файла (вместе с путями, если он не находится в текущем рабочем каталоге), как ввод для команды rm.

удаление файла

Q2. Как удалить каталоги с помощью команды rm?

Если вы пытаетесь удалить каталог, вам необходимо использовать параметр командной строки -r. В противном случае rm выдаст ошибку, указывающую, что вы пытаетесь удалить каталог.

удаление каталога

Q3. Как сделать, чтобы rm запрашивала подтверждение перед каждым удалением?

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

Например, предположим, что вы хотите удалить каталог testdir и все его содержимое, но хотите, чтобы rm запрашивала подтверждение перед каждым удалением, вот как вы можете это сделать:

запрос подтверждения

Q4. Как заставить rm игнорировать несуществующие файлы?

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

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

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

Q5. Как сделать запрос rm на подтверждение удаления только в некоторых скриптах?

Существует опция командной строки -I, которая при ее использовании позволяет сразу же запрашивать подтверждение перед удалением более трех файлов или при рекурсивном удалении.

Например, следующий снимок экрана показывает эту опцию в действии - при удалении двух файлов запроса на подтверждение не было, но он появился при удалении более трех файлов.

запрос подтверждения при удалении нескольких файлов

Q6. Как rm работает с корневым каталогом?

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

удаление корневого каталога

Однако, если вы хотите продолжить эту операцию по какой бы то ни было причине, вам нужно сообщить об этом rm с помощью опции -no-preserve-root. Когда эта опция включена, rm не выделяет корневой каталог (/) среди прочих.

Если вы хотите узнать о сценариях, в которых пользователь может удалить корневой каталог своей системы, почитайте об этом здесь .

Q7. Как заставить rm удалять только пустые каталоги?

Если вы хотите ограничить возможность удаления каталога rm только пустым каталогом, вы можете использовать опцию командной строки -d.

На следующем скриншоте показан параметр командной строки -d в действии - удалена только пустая директория.

удаление только пустого каталога

Q8. Как заставить rm выводить детали работы, которые она выполняет?

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

вывод подробной информации

Заключение

Учитывая ту функциональность, которую она предлагает, rm является одной из наиболее часто используемых команд в Linux (вместе с cp и mv). Здесь мы рассмотрели почти все основные параметры командной строки, которые предоставляет эта утилита. Для получения дополнительной информации перейдите на страницу руководства команды.

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


Команда rm в Linux

По умолчанию команда rm не удаляет директории. Чтобы удалить директорию и все ее содержимое, включая вложенные директории, нужно использовать опцию -r (рекурсивное удаление).

Синтаксис

файл(ы) — один или несколько файлов и/или директорий, записанных через пробел. Можно использовать шаблон (например, *.txt ).

Опции

Игнорировать несуществующие файлы и аргументы. Никогда не выдавать запросы на подтверждение удаления. Выводить запрос на подтверждение удаления каждого файла. Выдать один запрос на подтверждение удаления всех файлов, если удаляется больше трех файлов или используется рекурсивное удаление. Опция применяется, как более «щадящая» версия опции -i
  • never — никогда не выдавать запросы на подтверждение удаления.
  • once — выводить запрос один раз (аналог опции -I ).
  • always — выводить запрос всегда (аналог опции -i ).

Если значение КОГДА не задано, то используется always

Во время рекурсивного удаления пропускать директории, которые находятся на других файловых системах. Если в качестве директории для удаления задан корневой раздел / , то считать, что это обычная директория и начать выполнять удаление. Если в качестве директории для удаления задан корневой раздел / , то запретить выполнять команду rm над корневым разделом. Данное поведение используется по умолчанию. Удаление директорий и их содержимого. Рекурсивное удаление.

Примечание

Если нужно удалить файл, название которого начинается с символа - , например, файл -myfile , то используется следующая команда:

Примеры использования команды rm

Удалить файл

Чтобы удалить файл с помощью команды rm достаточно указать название файла:

Можно удалить несколько файлов, перечислив их имена через пробел:

Принудительно удалить защищенный файл

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

Удалить все файлы в текущей директории

Чтобы удалить все файлы в текущей директории можно использовать шаблонную запись звездочка *

Выдавать запрос перед удалением каждого файла

Чтобы перед удалением каждого файла выводилось подтверждение на удаление данного файла, используется опция -i

Выдать запрос на удаление один раз

При использовании опции -I выводится всего один запрос на подтверждение удаления файлов, причем, только если удаляемых файлов четыре и более. Если файлов 3, или 2, или 1, то запрос не выводится.

Команда RM. Запрос на удаление файлов

Удалить директорию и ее содержимое

Для удаления директорий и их содержимого используется опция -r . Удалим директорию mydir и все файлы и директории внутри нее:

rm - утилита командной строки для удаления файлов и каталогов Это одна из основных команд, с которыми должен быть знаком каждый пользователь Linux.

Как использовать rm команду

Общий синтаксис команды rm (удалить) следующий:

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

Чтобы удалить один файл, используйте rm команду с именем файла в качестве аргумента:

Если файл не защищен от записи, он будет удален без уведомления. В случае успеха команда не выдает никаких результатов и возвращает ноль.

При удалении защищенных от записи файлов команда запросит подтверждение, как показано ниже:


Введите y и нажмите, Enter чтобы удалить файл.

-f Опция говорит rm никогда не предложит пользователю и игнорировать несуществующие файлы и аргументы.


Если вы хотите получить информацию о том, что удаляется, используйте -v (подробный) вариант:

Удаление нескольких файлов

В отличие от unlink команды, rm позволяет удалить несколько файлов одновременно. Для этого передайте имена файлов в качестве аргументов через пробел:


Вы можете использовать регулярные выражения для сопоставления нескольких файлов. Например, чтобы удалить все .jpg файлы в текущем каталоге, введите:


При использовании регулярных выражений, перед запуском rm команды. Всегда полезно составить список файлов с помощью ls команды, чтобы вы могли видеть, какие файлы будут удалены.

Удаление каталогов (папок)

Чтобы удалить один или несколько пустых каталогов, используйте -d параметр:


rm -d функционально идентичен rmdir команде.

Чтобы удалить непустые каталоги и все файлы внутри них рекурсивно, используйте -r (рекурсивный) параметр:

Подскажите перед удалением

-i Опция указывает rm подсказывать пользователю для каждого файла перед его удалением


Чтобы подтвердить тип y и нажмите Enter :


При удалении более трех файлов или рекурсивном удалении каталога, чтобы получить одно приглашение для всей операции, используйте -I параметр:


Вам будет предложено подтвердить удаление всех указанных файлов и каталогов:

rm -rf

Если данный каталог или файл в каталоге защищен от записи, rm команда предложит вам подтвердить операцию. Чтобы удалить каталог без запроса, используйте -f параметр:


Команда rm -rf очень опасна и должна использоваться с особой осторожностью!

Вывод

Мы показали вам, как использовать команду Linux rm для удаления файлов и каталогов из вашей системы Linux.

Будьте предельно осторожны при удалении важных файлов или каталогов, так как после удаления файл не может быть легко восстановлен.


Unix содержит две команды, которые вы можете использовать для удаления файлов и каталогов: rm (удалить) и rmdir (удалить каталог).

Вы также можете использовать команду «rm» для удаления каталога.

В этом руководстве мы собираемся обсудить команду rm в Linux.

Это абсолютно бесплатное приложение, как и в сборке приложения с установкой ОС Linux.

Основными авторами этого приложения являются Пол Рубин, Ричард М. Столлман, Джим Мейринг и Дэвид Маккензи, выпущенное под лицензией GNU GPLv3.

Удалить файл

Удалите файл с помощью команды rm в Linux.

Удалить файл с выводом

Если вы хотите получить вывод после удаления файла, используйте команду rm с аргументом -v. См. Команду ниже.

Запрос перед удалением файла / каталога

Вы получите предупреждение перед удалением каждого файла, если вы удаляете несколько.

Удалить пустой каталог

Чтобы удалить пустой каталог, используйте команду rm в Linux с аргументом -d. См. Команду ниже.

Удалить каталог с его содержимым

Чтобы рекурсивно удалить каталог со всем его содержимым, используйте команду rm с аргументом -R. Используйте аргумент -f с аргументом -R для принудительного удаления каталога.

Вы также можете использовать приведенную ниже команду для рекурсивного удаления каталога с его содержимым.

Удалить файл принудительно

Для принудительного удаления файла используйте команду rm в Linux с аргументом -f. См. Команду ниже.

Предупреждение перед удалением более 3 файлов

Удалить несколько файлов, используя подстановочный знак

Удалите несколько файлов одновременно, используя команду rm в Linux, используя Wildcard.

Здесь у меня есть пять текстовых файлов. Чтобы удалить все файлы, используйте команду ниже.

Вы также можете удалить несколько файлов одновременно с помощью расширения файла с помощью команды rm в Linux. См. Команду ниже.

Читайте также: