Курс по сетевым технологиям
A A A

Рассмотрим команды для удаления файлов и каталогов. 

rm файл - удаляет файл, но не каталог.

rm -f файл либо rm --force файл - принудительное удаление файла. Это необходимо тогда, когда у пользователя нет права работать с объектами каталога, в котором находится сам файл. 

rm -i файл либо rm --interactive файл - при удалении файла система спросит, действительно ли ты хочешь его удалить. При этом достаточно ввести y(yes) либо n(no)

Использование команды rm с интерактивной опцией -i

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

А как узнать их количество?

С помощью команды ls -l

Отображение жестких ссылок


rm -r каталог - рекурсивное удаление всех каталогов и файлов. 

Что такое рекурсивное удаление? 

Представим, что  есть каталог. А в нем еще подкаталоги и файлы, а в тех подкаталогах другие подкаталоги. Чтобы удалить сразу все объкты одним разом, то достаточно  при удалении указать корневой родительский каталог и система, начиная с самого низа удалит и файлы и подкаталоги.Данный процесс и называется рекурсивным. 

Например, у нас имеется недавно созданный родительский каталог catalogue_A, а в нем следующие объекты:

Отображение каталогов


Теперь удалим каталог catalogue_A вместе с содержимым и проверим все 

rm -r catalogue_A/

Рекурсивное удаление содержимого каталога

Как видно каталог catalogue_A отсутствует.

А можно ввести просто rm catalogue_A/ ? 

Нет, система выдаст ошибку, так как команда rm используется в основном для удаления файлов. 

Для удаления отдельных каталогов используется следующая команда: 

rmdir каталог - удаление пустых каталогов. 

А если он не пустой? 

Если он не пустой, то система выдаст ошибку:

Ошибка при удалении непустого каталога

В данном случае поможет команда

rmdir --ignore-fail-on-non-empty каталог - удаление непустых каталогов 

rmdir -p каталог/подкаталог_1/подкаталог_2 - удаление родительского и всех вложенных в него каталогов. Данная команда работает, когда они не содержат других файлов, кроме самих каталогов и подкаталогов. 

Например, попробуем удалить каталог testA со всеми подкаталогами:

Отображение файлов и каталогов

Теперь удалим их все:

Удаление каталога testA

Для большей информативности можно использовать опцию -v (--verbose)

Удаление каталогов с опцией verbose