Как удалить файл или папку из терминала?
Чтобы удалить файл или папку (а здесь корректно говорить не о папках, а о директориях) из терминала Линукс используются команды rm и rmdir, по аналогии с командами del и deltree в консоли cmd Windows. Команды просты и опциями небогаты. Это не тот вариант, к которому будет прибегать заурядный пользователь во время работы в полноценно работоспособной системе. Однако для тех, кто запускает cron-задачи при помощи скрипта или при работе из ремонтного терминала с вылетевшим GUI, команды могут пригодится.
Сразу нужно отметить, что удалённые файлы и директории с помощью этих команд удаляются из системы минуя Корзину, так что вы должны быть уверены в том, что делаете.
Как удалить файл и папку из терминала: команда rm
Простейшая команда на удаление выглядит как
rm путь-к-файлу/файл.расширение
Файлы можно удалять массово, указывая их имена через пробел:
rm файл1.txt файл2.txt файл3.txt
При удалении файлов скопом также успешно используются и групповые символы. Как всегда в таких случаях, можно применять * и ?. “Звёздочкой” вы обозначаете множество символов, ? – одиночные. Например, для удаления ряда фотографий из выбранной папки можно использовать:
rm *.jpeg
Причём групповые символы можно использовать для выделения и имён и расширений файлов. Чтобы, к примеру, удалить все фотографии с расширением jpeg, а рисунки с расширением png оставить, можно ввести команду в виде:
rm *.????
Если файл, предполагаемый к удалению защищён ограничительными атрибутами (типа “только для чтения”), терминал затребует подтверждение. В случае, когда вам захочется всё-таки контролировать процесс удаления файла, дополните команду флагом -i. Теперь для удаление каждого из файлов нужно будет подтверждать действие:
Соглашаться придётся на английском:
Но. В противовес флагу -i есть флаг -f. Он в команде rm удалить любые файлы, даже если те защищены создателем или системой:
rm -f Файл.txt
Как удалить папку из терминала с помощью rm?
Командой rm можно избавляться и от папок и директорий. Но содержимое команды будет отличаться в зависимости от содержимого самой удаляемой директории. Так, если директория пуста, команда примет вид:
rm -d путь-к-директории
Если в директории что-то есть, меняем флаг на -r:
rm -r путь-к-директории
Защищённую папку удаляем на знакомый уже манер:
rm -rf папка
Команда сколь проста, столь же и опасна. Нерадивое её использование может привести к случайному затиранию жизненно важных директорий Кали. Потому для получения представления о составе директории прямо из терминала можно предварительно запастись скриптом древовидного отображения содержимого папок и директорий Линукс. Установим…
apt-get install tree
и посмотрим:
Далее. Познакомьтесь со следующим вариантом удаления директорий из Линукс.
Как удалить папку из терминала с помощью rmdir?
Почти тоже самое, что и предыдущий вариант с одним, но серьёзным отличием
rmdir = rm -d
Да. Командой rmdir можно удалять только пустые директории. Также единично или массово, также указывая полный путь:
rmdir папка1 папка2
Если папка не пуста, rmdir выдаст ошибку:
Это, впрочем, не всегда удобно, если папки удаляются скопом. Вы в этом случае можете добавить флаг
--ignore-fail-on-non-empty
в начале команды, чтобы массовое удаление пустых (предположительно) директорий не прекратилось как только rmdir наткнётся на непустую папку:
rmdir --ignore-fail-on-non-empty папка1 папка2
Однако, если родительская директория содержит пустые папки, и она вам также не нужна, вы можете удалить и дочерние и родительскую одной командой, добавив флаг -p:
rmdir -p директория/папка
Трюк сработает потому, что rmdir начинает работать с целевой папкой, поднимаясь “по команде” наверх по иерархическому древу, удаляя одну папку за другой.
У меня всё. Успехов.