Как удалить папку в Linux
Пустую папку:
rmdir old-folderПапку со всем содержимым:
rm -r old-folderrmdir удаляет только пустую папку и откажется, если внутри что-то есть, — поэтому он безопасен. rm -r (recursive) удаляет папку вместе со всеми файлами и вложенными папками. Если у части файлов нет права записи, rm -r спросит про каждый; rm -rf удаляет без вопросов.
В терминале нет корзины: rm -r и rm -rf удаляют сразу и навсегда. Лишний пробел в пути (rm -rf ~/ old вместо rm -rf ~/old) удалит всю домашнюю папку, а с sudo такая же ошибка уничтожает систему. Перед удалением посмотрите тот же путь через ls и только потом меняйте ls на rm -r.
Как удалять безопаснее
ls -la old-folder
rm -rI old-folder
rm -ri old-folder- Сначала
ls— убедиться, что это та папка. rm -rIспросит один раз перед удалением папки целиком.rm -riспросит про каждый файл — удобно, когда файлов немного.- Нажимайте Tab при наборе пути — так в нём не будет опечаток.
Удалить содержимое, но оставить папку
rm -r old-folder/*
find old-folder -mindepth 1 -deleteПервая строка не тронет скрытые файлы (с точкой в начале имени). Вторая удалит всё внутри, включая скрытые, а саму папку оставит.
Внимательно с переменными в путях. Если переменная dir пустая, rm -rf "$dir"/* превращается в rm -rf /*. В скриптах пишите rm -rf "${dir:?}"/* — тогда bash остановится с ошибкой, если переменная пуста.
Ошибки
Directory not empty— этоrmdirилиrm -d, а папка не пустая. Нуженrm -r. Если папка кажется пустой, посмотрите скрытые файлы:ls -la.Permission denied— нет права записи в папку, где лежит удаляемое. Системные папки удаляются черезsudo rm -r …— только если точно знаете, что это за папка.Device or resource busy— в этой папке подключён диск или флешка. Сначала отключите его:sudo umount путь.Operation not permittedдаже сsudo— у файла может стоять защитный атрибут. Посмотреть —lsattr, снять —sudo chattr -i файл, если вы понимаете, зачем его ставили.- Имя начинается с дефиса — команда принимает его за ключ. Поставьте
--перед именем или./:rm -r -- -oldилиrm -r ./-old. - Имя с пробелами — в кавычках:
rm -r "Новая папка".
Корзина рабочего стола
Если нужна возможность вернуть файлы, удаляйте в корзину рабочего стола: в Ubuntu, Mint и других системах с рабочим столом обычно есть команда gio trash old-folder. Восстановить файлы можно через корзину в файловом менеджере.