Гид по технологиям

Как удалить файлы и папки в Linux — команды и лучшие практики

5 min read Linux Обновлено 31 Dec 2025
Как удалить файлы и папки в Linux
Как удалить файлы и папки в Linux

Удаление файла в Linux: пример командной строки

Введение

Удаление файлов — базовая операция управления хранилищем. В Linux есть несколько встроенных утилит для этого: unlink, rm и rmdir. Понимание разницы между ними и доступных флагов помогает избежать ошибок и потерь данных.

Краткое определение терминов:

  • unlink — удаляет одну жёсткую ссылку на файл.
  • rm — универсальная утилита для удаления файлов и директорий.
  • rmdir — удаляет только пустые директории.

Основные команды и когда их применять

Удаление одиночного файла

Чтобы удалить один файл через unlink:

unlink filename

Unlink удалит жёсткую ссылку к данным. Он не поддерживает несколько файлов за раз.

Для одного или нескольких файлов используйте rm:

rm filename
rm filename1 filename2 filename3

При попытке удалить защищённый от записи файл rm запросит подтверждение:

rm: remove write-protected regular file 'filename'?

Шаблоны и маски

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

rm *.txt

Будьте осторожны: glob-выражения разворачиваются оболочкой перед передачей в rm.

Флаги rm — что важно знать

  • -i — интерактивный режим. Спрашивает подтверждение перед удалением каждого файла.
  • -f — принудительное удаление, подавляет предупреждения и запросы.
  • -v — подробный вывод (verbose).
  • -r или -R — рекурсивное удаление директорий и их содержимого.
  • -d — удалить пустую директорию (альтернатива rmdir).

Примеры:

rm -i *.txt       # спрашивает для каждого файла
rm -f file1 file2 # без подтверждения
rm -rv /dir       # рекурсивно и подробно
rm -rf /directory # рекурсивно и принудительно (опасно!)

Важно: сочетание -rf (rm -rf) удаляет всё без подтверждения. Никогда не выполняйте такие команды с правами root без полного понимания пути.

Удаление директорий: rmdir vs rm

  • rmdir удаляет только пустые директории:
rmdir /path/to/empty_directory
  • rm -d эквивалентен удалению пустой директории через rm:
rm -d /path/to/empty_directory
  • Для непустых директорий используйте рекурсивное удаление:
rm -r /path/to/directory

Добавьте -f, чтобы подавить запросы:

rm -rf /path/to/directory

Практические рекомендации и проверки

Important: Всегда проверяйте текущую директорию и указанный путь перед выполнением rm. Мелкая опечатка может привести к массовой потере данных.

Проверочные шаги перед удалением:

  • Выполните ls -la /путь чтобы увидеть содержимое.
  • Используйте echo с масками: echo *.log покажет какие файлы под маской.
  • Для массовых удалений сначала выполните dry‑run: например, find /path -name ‘*.bak’ -print.

Безопасное удаление и восстановление

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

  • shred — перезаписывает файл; подходит для отдельных файлов на локальном диске:
shred -u filename
  • srm (secure rm) из пакета secure-delete — если установлен, делает многократное перезаписывание и удаление.

Замечание: для SSD и файловых систем с копированием при записи (COW), таких как btrfs или ZFS, shred и srm могут быть неэффективны. На таких дисках лучше использовать шифрование на уровне диска (LUKS) и удалять ключи шифрования.

Когда удаление не сработает (контрпримеры)

  • Файл занят процессом: если файл открыт другим процессом, диск с данными освободится только после закрытия дескриптора, даже если вы удалили ссылку.
  • Файловая система монтирована в режиме “read-only” — rm не сможет удалить файлы.
  • Ограничения прав доступа (permissions/ACL) — вы не сможете удалить файл без соответствующих прав.
  • Особенности SSD и COW-ФС — безопасное удаление не гарантируется стандартными средствами.

Что делать при ошибочном удалении

Краткий план действий:

  1. Немедленно прекратите записывать на диск (чтобы не перезаписать данные).
  2. Если у вас есть бэкап — восстановите из него.
  3. Для критичных данных рассмотрите обращение к профессиональным службам восстановления.
  4. На уровне ОС можно попытаться смонтировать образ диска и использовать инструменты восстановления (extundelete для ext4 и т.п.), но успех не гарантирован.

Шпаргалка — команды и их значение

rm filename                 # удалить файл
rm file1 file2              # удалить несколько файлов
rm -i *.txt                 # подтверждение для каждого файла
rm -f filename              # принудительно
rm -r /dir                  # рекурсивно удалить директорию
rm -rf /dir                 # рекурсивно и принудительно
rmdir /empty_dir            # удалить пустую директорию
rm -d /empty_dir            # rm-альтернатива для пустой директории
unlink filename             # удалить одну жёсткую ссылку
shred -u filename          # перезаписать и удалить файл (частично безопасно)

Решение: какая команда подходит вам (диаграмма)

flowchart TD
  A[Нужно удалить?] --> B{Файл или папка?}
  B --> C[Файл]
  B --> D[Папка]
  C --> E{Одиночный или несколько?}
  E --> |Одиночный| C1[unlink или rm]
  E --> |Несколько| C2[rm *.ext или rm file1 file2]
  D --> F{Папка пустая?}
  F --> |Да| D1[rmdir или rm -d]
  F --> |Нет| D2[rm -r]
  C1 --> G{Нужно подтверждение?}
  C2 --> G
  G --> |Да| H[Добавить -i]
  G --> |Нет| I[Добавить -f]

Риски и способы их снижения

Risk matrix (качественный):

  • Риск: Удаление нужных данных. Митигаторы: бэкапы, dry‑run, -i, проверка пути.
  • Риск: Уязвимость конфиденциальных данных. Митигаторы: шифрование диска, secure-delete, управление доступом.
  • Риск: Непредвиденное поведение на SSD/COW. Митигаторы: LUKS, политика переразметки.

Чеклисты по ролям

Администратор:

  • Проверить права и владельца файла (ls -la).
  • Сделать бэкап перед массовыми операциями.
  • Использовать -i при сомнении.
  • Логировать операции удаления.

Настольный пользователь:

  • Проверить корзину графического окружения.
  • Использовать rm только при невозможности удалить графически.
  • Не запускать rm -rf с sudo без проверки.

Короткий плейбук: безопасное массовое удаление

  1. Составьте список файлов: find /path -name ‘*.log’ -print > to_delete.txt
  2. Просмотрите файл to_delete.txt вручную.
  3. Сделайте бэкап каталога (tar или rsync).
  4. Выполните удаление с -i или сначала сделайте dry‑run.
  5. Проверьте диск и логи после удаления.

Однострочная глоссарий

  • rm — команда удаления файлов и директорий.
  • rmdir — удаление только пустых директорий.
  • unlink — удаление одной жёсткой ссылки.
  • shred/srm — инструменты для более полного удаления содержимого файла.
  • LUKS — шифрование диска на блоковом уровне.

Итог

Удаление файлов и папок в Linux — мощный инструмент. Он гибок, но требует аккуратности. Используйте подтверждение (-i), делайте бэкапы перед массовыми операциями и применяйте шифрование для защиты конфиденциальных данных. Для безопасного удаления изучите особенности своей файловой системы и носителя.

Заметки:

  • На SSD и в файловых системах с копированием при записи безопасное стирание может не работать — используйте шифрование.
  • Для восстановления удалённых данных действуйте быстро и избегайте записи на диск.

Критерии приёмки:

  • Команды для удаления файлов и директорий приведены и корректны.
  • Перечислены ключевые флаги и их поведение.
  • Даны практические рекомендации по безопасности и восстановлению.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Экспорт Google Календаря в ICS
Инструкция

Экспорт Google Календаря в ICS

Evernote + Google Календарь — синхронизация
Интеграции

Evernote + Google Календарь — синхронизация

Настройка Google Календаря: быстрый и полный гайд
Productivity

Настройка Google Календаря: быстрый и полный гайд

Рабочие местоположения в Google Calendar
Продуктивность

Рабочие местоположения в Google Calendar

Calendly: как работает и как настроить
Продуктивность

Calendly: как работает и как настроить

Связать Amazon Echo с Google Календарём
Как‑to

Связать Amazon Echo с Google Календарём