Только для посетителей нашего блога: получите дополнительные 3 месяца бесплатно + скидку 10% на трехгодичный план YSBLOG10
Захватить сделку

Как удалить файл/каталог в Linux 2026

Последнее обновление: сентябрь 7, 2026 9 min read Прахлад Праджапати
Удаление файла/каталога в Linux

Для удаления файла или каталога в Linux используйте команду `rm` для файлов, `rmdir` для пустых папок и `rm -r` для непустых каталогов. Добавьте `-i` для интерактивного вывода, `-v` для подробного вывода и `-f` для принудительного удаления. Для безопасной массовой очистки используйте комбинацию `find` с `-delete` или `-exec`. Всегда проверяйте путь перед выполнением рекурсивных команд.

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

Шпаргалка по быстрым командам

# Delete a file
rm file.txt

# Delete multiple files
rm file1.log file2.log

# Interactive + verbose (safer)
rm -iv file.txt

# Delete an empty directory
rmdir empty_folder
# or
rm -d empty_folder

# Delete a non-empty directory (recursive)
rm -r folder_name

# Force recursive delete (dangerous)
rm -rf folder_name

# Delete files matching a pattern in current dir
rm -i *.log

# Send to Trash (safer, requires trash-cli)
trash-put file.txt

# Use find to delete by name/modification time
find /var/log -type f -name "*.log" -mtime +30 -delete

# End options, handle files beginning with a dash
rm -- -weirdname

# Remove file securely (overwrite)
shred -u secrets.txt

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

  • гт: Удаляет файлы и каталоги. Добавляет -r для рекурсии, -f принудить, -i чтобы подтвердить, -v Для подробного вывода информации. Работает как с файлами, так и с каталогами.
  • rmdir: Удаляет только пустые каталоги. Это безопаснее, поскольку не затрагивает файлы.
  • отсоединить: Удаляет один файл (оболочку системного вызова нижнего уровня). Хорошо подходит для удаления пути к одному файлу, но реже используется в повседневной работе.

Для большинства задач rm — ваш основной инструмент. Используйте rmdir, чтобы обеспечить соблюдение правила «только пустые каталоги». Используйте unlink для скриптов, содержащих один файл, или когда вам нужен минимальный набор функций.

Как безопасно удалить файл в Linux

1) Подтвердите путь и цель.

Перед удалением всегда проверяйте текущий рабочий каталог и перечисляйте целевой каталог. Это лучшая защита от случайной потери данных.

pwd
ls -lah
ls -lah /path/to/target

2) Используйте флаги интерактивного и подробного вывода.

Интерактивные подсказки помогут вам подтвердить каждое удаление. Подробный вывод точно покажет, что было удалено.

# Safer single-file deletion
rm -iv report.csv

# Safer bulk deletion with a pattern
rm -iv *.log

3) Обработка пробелов, специальных символов и межстрочных тире.

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

# Spaces
rm "Quarter 1 Report.pdf"

# Special characters
rm 'data (final).txt'

# Leading dash
rm -- -error.log

4) Не забудьте про скрытые файлы

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

# Delete visible and hidden logs in current directory
rm -iv .*.log *.log

Как удалить каталог в Linux

Удалите пустую директорию

Используйте команды `rmdir` или `rm -d`, если вы уверены, что каталог пуст. Это безопасная и быстрая проверка.

rmdir /path/to/emptydir
# or
rm -d /path/to/emptydir

Удаление непустой директории (рекурсивное удаление)

Для каталогов, содержащих файлы или подкаталоги, используйте команду `rm -r`. Добавьте `-i` для получения приглашения к вводу команд или `-I` для получения одного приглашения при удалении множества файлов; избегайте использования команды `-rf` в фоновом режиме.

# Safer recursion with prompts
rm -rI project_folder

# Verbose recursive deletion
rm -rv project_folder

# Forceful recursive delete (dangerous; no prompts)
rm -rf project_folder

Совет: Используйте --one-file-system для предотвращения пересечения границ файловых систем (полезно на серверах с смонтированными томами) и --preserve-root (по умолчанию в GNU rm) для защиты прав root. Никогда не используйте rm -rf /.

Удаление по шаблону внутри дерева каталогов

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

# Delete only .log files under /var/log older than 30 days
find /var/log -type f -name "*.log" -mtime +30 -delete

# Preview first
find /var/log -type f -name "*.log" -mtime +30 -print

# Delete empty directories
find /data -type d -empty -delete

Массовое удаление с помощью find и xargs

Для очень больших наборов данных (тысячи файлов) предпочтительнее использовать команду find с параметром -delete или -print0 с параметром xargs -0 для безопасной обработки пробелов и специальных символов.

# Delete large files over 1GB
find /backup -type f -size +1G -print0 | xargs -0 -I{} rm -v "{}"

# Interactive confirmation per file
find ./build -type f -name "*.tmp" -print0 | xargs -0 -I{} rm -iv "{}"

# Restrict depth
find /var/www -maxdepth 1 -type f -name "*.old" -delete

Безопасное удаление (соблюдение нормативных требований и конфиденциальность)

Стандартная команда `rm` удаляет пути; данные могут оставаться на диске до тех пор, пока не будут перезаписаны. Для конфиденциальных данных используйте инструменты безопасного удаления, но помните об особенностях файловой системы (журналирование, выравнивание износа SSD, снимки).

  • измельчить: Перед удалением ссылки перезаписывает содержимое файла. Менее эффективно для файловых систем с копированием при записи или журналируемой файловой системы.
  • wipe/rm: Утилиты, предназначенные для безопасного удаления данных (доступность зависит от дистрибутива).
  • Полное шифрование диска: Наиболее надежная стратегия защиты данных в состоянии покоя на современных устройствах хранения.
# Overwrite and remove a file
shred -u -n 3 -z secrets.txt

# Securely erase free space on a simple FS (use with caution; may not support CoW FS)
# wipe -f /dev/sdX

Если в вашей среде используются моментальные снимки (например, облачное блочное хранилище) или файловые системы с копированием при записи, безопасное удаление может не удалять исторические копии. Регулярно обновляйте и удаляйте моментальные снимки.

Устранение распространенных ошибок удаления

"Доступ запрещен"

Возможно, у вас отсутствуют необходимые права доступа, или файл принадлежит другому пользователю. Используйте команду `sudo` или ответственно настройте права доступа/владельцев файла.

# Run with elevated privileges
sudo rm -iv /restricted/file.txt

# Change owner, then delete
sudo chown youruser:youruser /restricted/file.txt
rm -iv /restricted/file.txt

«Операция запрещена» (неизменяемые файлы)

В Linux поддерживаются неизменяемые атрибуты, которые предотвращают их изменение или удаление. Сначала удалите атрибут, а затем удалите его.

# Clear immutable attribute, then delete
sudo chattr -i /path/to/file
rm -iv /path/to/file

«Устройство или ресурс заняты»

Файл или каталог используется запущенным процессом или смонтированной файловой системой. Определите открытые дескрипторы и безопасно остановите процессы.

# Show processes using the path
lsof +D /path/to/dir
# or
fuser -v /path/to/file

# Unmount if it's a mount point (confirm before doing this)
sudo umount /mount/point

«Список аргументов слишком длинный»

Расширение возможностей подстановки символов в оболочке позволяет использовать больше аргументов, чем допускает система. Для поиска используйте параметр -delete или xargs.

# Instead of: rm *.tmp (fails on huge sets)
find . -type f -name "*.tmp" -print0 | xargs -0 rm -v

Более безопасные альтернативы RM в производстве

Переместить в корзину с помощью trash-cli

Для восстановления удаленных файлов используйте trash-cli, чтобы отправить их в корзину на рабочем столе вместо окончательного удаления.

# Install (Debian/Ubuntu)
sudo apt install trash-cli

# Install (RHEL/CentOS/Fedora)
sudo dnf install trash-cli

# Usage
trash-put file.txt
trash-list
trash-restore
trash-empty

Удаление с помощью «мягкого» удаления путем перемещения в папку карантина.

В скриптах или заданиях cron сначала переместите файлы в карантинный каталог с указанием даты. После истечения срока хранения выполните очистку.

QUAR=$HOME/.quarantine/$(date +%F)
mkdir -p "$QUAR"
mv /data/*.old "$QUAR"/
# Purge quarantined items older than 14 days
find "$HOME/.quarantine" -type f -mtime +14 -delete

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

Контрольный список передовых методов и мер безопасности

  • Подтвердите путь с помощью pwd и перечислить цели с помощью ls -lah перед удалением.
  • предпочитать rm -i or rm -I Для ручной очистки; избегайте слепых зон. rm -rf.
  • Используйте find ... -delete для целевой рекурсии; предварительный просмотр с -print первый.
  • Заключайте пути в кавычки с пробелами/специальными символами; используйте -- для имен, начинающихся с тире.
  • Проверьте права доступа, права собственности и атрибуты (chattr) при возникновении ошибок.
  • Используйте --one-file-system для рекурсивного удаления в системах с несколькими точками монтирования.
  • Внедрите рабочие процессы карантина/удаления файлов и создавайте резервные копии или снимки состояния.
  • Автоматизируйте политики хранения данных (например, удаление журналов старше N дней) с помощью хорошо протестированных скриптов.

Примеры из реальной жизни (хостинг и DevOps)

Ниже приведены практические, удобные для внедрения в производство примеры, предотвращающие сбои и потерю данных — основанные на многолетнем опыте работы серверов. manageсреды.

# 1) Rotate and delete old web logs (older than 14 days), excluding gz archives
find /var/log/nginx -type f -name "*.log" -mtime +14 -not -name "*.gz" -delete

# 2) Clean build artifacts but keep releases/
find /var/www/app -path "/var/www/app/releases" -prune -o -type f -name "*.tmp" -print -delete

# 3) Remove empty cache directories created during deploys
find /var/cache/app -type d -empty -delete

# 4) Delete files owned by a specific user (after offboarding)
find /home/olduser -user olduser -type f -print -delete

# 5) Safe dry-run using echo (preview commands)
find /data/archive -type f -name "*.bak" -mtime +60 -print0 | xargs -0 -I{} echo rm -v "{}"

Часто задаваемые вопросы (FAQ)

Как удалить файл в Linux?

Используйте команду `rm`, а затем укажите путь к файлу: rm filenameВ целях безопасности добавьте -i для подтверждения каждого удаления и -v для подробностей: rm -iv filename. Заключайте в кавычки пути, содержащие пробелы или специальные символы.

Как удалить каталог в Linux?

Для пустых каталогов используйте rmdir or rm -dДля каталогов с содержимым используйте rm -r (рекурсивно). Добавить -I or -i в целях безопасности и использования -v чтобы посмотреть, что удаляется.

В чём разница между командами rm -r и rm -rf?

rm -r Удаляет каталоги и их содержимое рекурсивно, учитывая ошибки и запросы, если это настроено. rm -rf Добавляет «принуждение», подавляя подсказки и ошибки. Это мощный, но опасный инструмент — избегайте его использования без тщательной проверки.

Как удалить файлы по шаблону или по дате удаления?

Используйте команду find с параметрами -name и -mtime. Пример: find /path -type f -name "*.log" -mtime +30 -delete Удаляет журналы старше 30 дней. Всегда сначала просматривайте их с помощью -print.

Можно ли восстановить файлы после использования команды rm?

Обычно нет — команда `rm` немедленно удаляет файлы. Восстановление — сложный и ненадежный процесс. Для более безопасной работы используйте `trash-cli` или переместите файлы в карантинный каталог, а также создавайте резервные копии или снимки.

Как исправить ошибку «Операция запрещена» при удалении?

Файл может быть неизменяемым. Запустите sudo chattr -i /path/to/file Чтобы удалить атрибут, сначала удалите файл. Также проверьте права доступа и убедитесь, что файл не используется каким-либо процессом.

Надежно ли безопасное удаление (уничтожение данных) на SSD-накопителях?

Не полностью. Выравнивание износа SSD и журналирование могут оставлять копии. Предпочтительнее полное шифрование диска и ротация/уничтожение ключей шифрования. Проверьте рекомендации производителя хранилища и политики создания моментальных снимков.

Управление серверами в масштабе предприятия? YouStableАвтора managed hosting помогает вам внедрять безопасные политики удаления, автоматизировать очистку и хранить надежные резервные копии, поэтому техническое обслуживание никогда не будет ставить под угрозу бесперебойную работу.

Оставьте комментарий

Ваш адрес электронной почты не будет опубликован. Обязательные поля отмечены *.

Наверх