Как удалить файл в Linux через терминал

Чтобы удалить файл в терминале используйте rm: rm имя_файла. Для папок — rmdir (пустые) или rm -r. Учитывайте права на директорию (а не только на файл) и предпочитайте безопасные варианты (rm -i, trash-cli, mv в /tmp) прежде чем запускать принудительные команды.

Основные команды rm и примеры

rm удаляет файлы без перемещения в корзину. Частые опции:

  • rm file.txt — удалить файл.
  • rm -i file.txt — спрашивать подтверждение перед удалением.
  • rm -v file.txt — показывать удаляемые файлы.
  • rm -r dir — рекурсивно удалить папку с содержимым.
  • rm -rf dir — рекурсивно и форсированно (без вопросов) — опасно.
  • rmdir empty_dir — удалить только пустую папку.

Примеры:

rm document.txt
rm -i *.log            # подтвердите перед каждой
rm -r project_folder
rm -rf old_backups     # ОПАСНО: проверьте путь

Никогда не выполняйте sudo rm -rf / или похожие команды без понимания: можно полностью сломать систему.

Права доступа и что действительно влияет на удаление

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

  • Чтобы удалить файл, у вас должна быть запись (w) в родительской директории и разрешение на исполнение (x) для доступа.
  • Права файла (rw-) влияют на изменение содержимого, но не на возможность удалить файл из директории. Проверка и исправление:
ls -l file.txt            # права файла и владелец
ls -ld .                  # права текущей директории
sudo chown $USER file.txt # сменить владельца (если нужно)
chmod u+w file.txt        # добавить право записи владельцу (редко требуется)

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

Безопасные альтернативы rm

  • Используйте алиас для подтверждения: в ~/.bashrc добавьте
alias rm='rm -i'
  • Перемещайте в /tmp вместо удаления: mv file.txt /tmp/ — быстро вернуть.
  • trash-cli (на Debian/Ubuntu: sudo apt install trash-cli) отправляет файлы в корзину, откуда их можно восстановить: trash-put file.txt и trash-restore.
  • Для массовых операций сначала прогоняйте dry-run (например, ls pattern или тестовый каталог), и только потом удаляйте.

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

Частые ошибки

  • rm file*.txt удалил больше, чем ожидалось — используйте кавычки или экранирование: rm "file*.txt" или rm file*.txt.
  • rm .* попытка удалить скрытые файлы без понимания — может тронуть . и ..; не используйте rm .*.
  • Использование sudo по привычке — повышает риск удаления системных файлов.
  • Прямой rm -rf без просмотра содержимого — всегда сначала ls, затем rm.

FAQ

  • Как восстановить удалённый файл? Если использовали trash-cli — trash-restore. Если удалено напрямую — восстановление зависит от бэкапов или специальных утилит (testdisk/photorec), но успех не гарантирован.
  • Нужны ли права на сам файл для удаления? Нет: важны права на директорию (w и x). Права файла влияют на изменение содержимого, но не на удаление из каталога.
  • Можно ли сделать «корзину» для всего пользователя? Да: используйте trash-cli или настройте скрипт, который перемещает файлы в ~/Trash и очищает по расписанию.

Если сомневаетесь — сначала создайте копию и протестируйте команду в отдельной папке. Это спасёт данные и время.