Как удалить файл в 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 и очищает по расписанию.
Если сомневаетесь — сначала создайте копию и протестируйте команду в отдельной папке. Это спасёт данные и время.