
Команда «rm» в Linux играет ключевую роль для управления файлами и директориями. Эта утилита предоставляет пользователям возможность удалять ненужные файлы, очищать директории и освобождать место на диске. От базовых принципов до более сложных задач. В этой статье рассмотрим всё, что нужно знать для безопасного и эффективного использования.
- Синтаксис
- Опции
- Часто используемые варинты применения
- Как удалить файлы в Linux с помощью терминала
- Удаление с параметром -i в интерактивном режиме
- Опция -f или удалить без запроса
- Опция -v удаление с выводом информации
- Как в Linux удалить папку
- Удаление пустого каталога
- Удалить папку в Linux с помощью команды rm
- Резюме
Синтаксис
Синтаксис команды rm (сокращение от remove) прост, но перед ее использованием важно понимать, как она работает и какие опции можно применять.
| 1 | rm [опции] [файлы или директории] |
Здесь:
- [опции] — это необязательные параметры, которые позволяют настроить поведение команды.
- [файлы или директории] — это имена файлов или директорий, которые вы хотите удалить.
Опции
Рассмотрим основные опции и параметры.
- -f, —force — Позволяет удалить файлы без запросов на подтверждение, игнорируя ошибки, если файл не существует.
- -i — запрашивает подтверждение пользователя перед удалением каждого файла или директории. Это позволяет избегать случайного удаления важных данных.
- -r, -R, —recursive — используются для рекурсивного удаления директорий и их содержимого. При использовании этой опций удаляются указанные директории, все файлы и поддиректории внутри них.
- -d, —dir — используется для удаления только пустых директорий (папок). Если вы попытаетесь удалить директорию, содержащую файлы или другие поддиректории без этой опции, будет выдана ошибка.
- —no-preserve-root — Отменяет специальное обращение к корневой директории (/), позволяя её удаление. Если вы новичок в линукс не используйте этот параметр! Это может повредить вашу систему.
- —preserve-root[=all] — Предотвращает удаление корневой директории (/) по умолчанию. Если указан флаг «[=all]», также отвергает любой аргумент командной строки на отдельном устройстве от его родителя, обеспечивая безопасность при удалении.
- -v, —verbose — позволяет выводить подробные сообщения о том, какие файлы и директории были удалены, что делает процесс удаления более информативным.
- —help — Выводит краткую справку с описанием опций.
- —version — Выводит информацию о версии программы.
Часто используемые варинты применения
| Что нужно сделать | Как пишется в терминале | Техническое поведение и системные ограничения | ||||
| Удалить папку вместе со всеми файлами внутри (с обработкой защиты от записи) |
| Флаг -r (или -R, recursive) — запускает рекурсивный обход и удаление вложенной структуры каталога. Интерактивный запрос на подтверждение выдается исключительно для объектов, защищенных от записи (write-protected), и только при условии, что стандартный ввод (stdin) подключен к терминалу. Если stdin перенаправлен, интерактивные запросы не выводятся: для защищенных от записи файлов rm выдаст ошибку «Permission denied» и продолжит удаление остальных доступных объектов. Итоговый код возврата будет ненулевым, но утилита не завершится досрочно. Отсутствие прав на запись в сам родительский каталог сразу вызывает ошибку «Permission denied», блокируя операцию. | ||||
| Удалить папку с файлами принудительно (без интерактивных запросов) |
| Комбинация флагов -r и -f (force) — рекурсивное удаление без подтверждения. Полностью игнорирует несуществующие файлы и принудительно подавляет любые интерактивные запросы системы. Работает мгновенно и безвозвратно, стирая в том числе скрытые файлы внутри указанной директории, после чего уничтожает сам корневой каталог. | ||||
| Частично очистить папку: удалить только видимое содержимое, оставив скрытые файлы |
или
| Ограничение маски * (globbing) в Bash: Оболочка по умолчанию раскрывает символ * только в именах, не начинающиеся с точки. Команда рекурсивно удалит все видимые файлы и подкаталоги, но полностью пропустит скрытые объекты (например, .htaccess, .git, .config), а также сохранит саму целевую директорию. Если внутри есть защищенные от записи файлы, вариант без флага -f потребует подтверждения в терминале. Поведение при пустом glob: Если внутри папки нет ни одного не скрытого объекта, маска * не раскрывается. Команда попытается удалить несуществующий файл с литеральным именем *, что вызовет ошибку «No such file or directory». Важно для скриптов: Простое включение shopt -s nullglob без проверки приведет к тому, что маска раскроется в пустой список. Команда превратится в rm -r без аргументов и завершится ошибкой «rm: missing operand». Для безопасного использования в автоматизации необходимо проверять, что маска раскрылась в непустой список (через чтение в массив и проверку его длины), либо использовать утилиту find с ограничением глубины -maxdepth 1 -mindepth 1. | ||||
| Полностью очистить содержимое папки под ноль (включая все скрытые файлы) |
| Один из эффективных способов полной очистки каталога. Утилита find с флагом -delete неявно активирует обход -depth в GNU find и безопасно удаляет объекты, начиная с самых глубоких уровней вложенности. Флаг -mindepth 1 исключает саму корневую папку из обработки. Системное ограничение: Операция завершится ошибкой для конкретных объектов, если у исполнителя отсутствуют права на запись и выполнение (w+x) в самой директории имя_папки, так как удаление любой записи требует прямой модификации метаданных её родительского каталога. Альтернативные корректные методы: 1. Изменение поведения шелла: shopt -s dotglob && rm -rf имя_папки/* && shopt -u dotglob (включает скрытые файлы в маску *). 2. Пересоздание: rm -rf имя_папки && mkdir имя_папки (требует прав на запись в родительский для имя_папки каталог). | ||||
| Безопасно удалить пустую директорию |
| Самостоятельная утилита rmdir — атомарный способ удаления пустых каталогов. Если внутри папки остался хотя бы один файл (включая скрытые), выполнение завершится ошибкой самой утилиты и структура останется нетронутой. Защищает от случайного удаления полезных данных при ошибках в скриптах или путях. | ||||
| Удалить один конкретный файл |
| Использование rm без флагов — стандартное уничтожение одиночного объекта. Попытка применить базовую команду к каталогу вызовет ошибку выполнения утилиты rm (сообщение вида «rm: cannot remove ‘…’: Is a directory»). Оболочка терминала при этом не является источником данной ошибки. |
Внимание: Все указанные команды удаления (особенно с флагами -rf или использованием утилиты find) выполняются мгновенно, безвозвратно и без каких-либо предупреждающих запросов со стороны системы.
В терминале Linux нет привычной «Корзины» — данные стираются сразу из файловой системы. Один случайный пробел (например, rm -rf / папка вместо rm -rf /папка) или опечатка в пути приведут к полной потере личных файлов или падению всей операционной системы.
Перед тем как нажать Enter, всегда берите за правило:
- Проверить, в каком каталоге вы сейчас находитесь (команда pwd).
- Внимательно перечитать каждый символ в путях к файлам или папкам.
- Убедиться, что вы точно понимаете, какой именно объект удаляете.
Вся ответственность за запуск команд и сохранность ваших данных лежит исключительно на вас.
Как удалить файлы в Linux с помощью терминала
Удаление файлов — это важная и часто используемая операция. Рассмотрим подробно и с примерами.
Чтобы удалить один файл, например «test.txt» введите в командной строке:
| 1 | $ rm test.txt |
Файл будет удален. Чтобы проверить какие файлы и папки есть директории используйте команду ls.

Для удаления нескольких файлов укажите их имена через пробел. Например, требуется удалить три файла с названиями «test_1», «test_2», «test_3». Команда будет такой:
| 1 | $ rm test_1 test_2 test_3 |
Количество файлов может быть любым.
С этой командой можно использовать подстановочные знаки.
Например, чтобы удалить все файлы с именем «.jpg» в терминале укажите:
| 1 | $ rm *.jpg |
Или допустим вам нужно удалить файлы в текущей папке начинающиеся со слова «file», для этого удобно использовать такой вариант:
| 1 | $ rm file* |
Будут удалены все файлы имена которых начинаются с «file». Это включает файлы вида «file1.txt», «file2.jpg», и так далее
Этот метод также используется для удаления всех файлов, которые содержат строку символов:
| 1 | $ rm *sample*.* |
Конструкция «rm *sample*.*» удалит все файлы в текущей директории, имена которых содержат слово «sample» и имеют расширение.
Например, если в текущей директории есть файлы «example-sample.txt», «test-sample.png», и «file.docx», то после выполнения этой команды останется только файл «file.docx», так как он не соответствует шаблону «*sample*.*».

Чтобы удалить файл в другом каталоге можно перейти в него с помощью команды cd и затем указать команду.
Либо указать путь до файла напрямую с помощью одной команды. Для примера я удалю оставшийся файл «file.docx» в папке «Test»:
| 1 | $ rm Test/file.docx |
Файл удален.
Удаление с параметром -i в интерактивном режиме
Если вы хотите, чтобы перед удалением у вас запрашивалось подтверждение то используйте опцию «-i». Пример удаления файла «testoviy»:
| 1 | $ rm -i testoviy |
Команда «rm» попытается удалить файл с именем «testoviy». Если такой файл существует в текущем рабочем каталоге, будет задан вопрос о том, хотите ли вы действительно удалить этот файл;
| 1 | rm: удалить обычный файл 'testoviy'? |
Вы можете ввести букву «y» или «yes» для подтверждения, или «n» для отмены удаления.
Опция -f или удалить без запроса
Теперь давайте рассмотрим опцию «-f» (--force) . Она используется для принудительного удаления файлов без запросов на подтверждение.
Это означает, что команда «rm» будет удалять файлы, даже если они защищены от удаления или если у пользователя нет разрешения на их удаление.
Это может быть полезным в сценариях, когда необходимо удалить несколько файлов без постоянного подтверждения для каждого из них.
Однако будьте осторожны при использовании этой опции, так как она не предоставляет дополнительных гарантий безопасности и может привести к удалению файлов, которые вы не собирались удалять.
| 1 | $ rm -f file1.txt file2.txt |
Опция -v удаление с выводом информации
Опция «-v» (—verbose) используется для вывода подробной информации о том, какие файлы удаляются.
Когда эта опция включена, будет выводиться названия файлов или директорий, которые удаляются, на экран, чтобы пользователь мог видеть процесс.
Для примера удалим файлы «file1.txt» и «file2.txt». Команда:
| 1 | $ rm -v file1.txt file2.txt |
В этом примере «rm» удалит файлы и выведет сообщение о каждом из них.
Как в Linux удалить папку
Удаление каталога (папка) в Linux — это распространенная задача при администрировании и управлении файлами. Давайте рассмотрим, удаление папок, будь то пустая папка или с файлами и подкаталогами.
Удаление пустого каталога
Если каталог не содержит файлов или подкаталогов, вы можете использовать команду «rmdir» или «rm» для его удаления. Давайте рассмотрим оба варианта.
- rmdir — может удалять только пустые каталоги/папки. Команда используется очень редко.
- rm — удаляет каталог/папку вместе со всеми файлами и подкаталогами в ней.
Если нам заведомо известно о том, что каталог пустой то можно применить команду «rmdir». Можно указать сразу несколько каталогов указав их через пробел.
Если команда найдет контент в одном из перечисленных каталогов, она пропустит его и перейдет к следующему.
| 1 | rmdir имя_каталога |
Этот метод удаляет только пустой каталог или каталоги. Во всех остальных случаях удобнее применять команду «rm».
Для удаления пустых папок с помощью «rm» нужно использовать опцию «-d».
| 1 | rm -d имя_каталога |
Удалить папку в Linux с помощью команды rm
Если каталог содержит файлы и подкаталоги, для удаления используйте команду «rm» с опцией «-r» (рекурсивное удаление):
Например, чтобы удалить папку «Test» используется команда:
| 1 | $ rm -r Test |

Чтобы удалить каталог без подтверждения используйте опцию «-f»:
| 1 | $ rm -rf Test |
Это основные варианты. Все опции команды «rm» которые были использованы при описании файлов также применимы и для каталогов.
Резюме
Удаление файлов и каталогов — важная и неотъемлемая часть администрирования операционной системы. Правильно освоив эти команды и опции, вы сможете эффективно управлять файлами и освобождать место на диске.
Не забывайте о том, что файлы удаляются навсегда, поэтому осторожно применяйте команды. Если у вас есть сомнения, сначала выполните команду с опцией «-i», чтобы система запросила подтверждение.
Любой важный файл или каталог должен быть удален с осторожностью. Не забывайте создавать резервные копии перед удалением чего-либо важного.















