Создание и удаление структур директорий с помощью mkdir, rmdir и rm
На этом этапе вы научитесь создавать и удалять директории. Организация файлов в иерархическую структуру папок — это фундаментальная задача в Linux. Мы будем использовать команду mkdir для создания директорий, rmdir для удаления пустых папок и rm для удаления директорий вместе со всем их содержимым. Все команды будут выполняться из вашей рабочей директории по умолчанию: ~/project.
Для начала создадим простую директорию. Название команды mkdir расшифровывается как «make directory» (создать директорию).
Выполните в терминале следующую команду, чтобы создать папку с именем cars:
mkdir cars
Чтобы убедиться, что директория создана, воспользуйтесь командой ls -ld. Флаг -l выводит подробный список, а флаг -d заставляет команду показать саму директорию, а не её содержимое.
ls -ld cars
Вы должны увидеть вывод, похожий на этот, подтверждающий создание папки cars. Символ d в начале строки прав доступа указывает на то, что это директория (directory).
drwxr-xr-x 2 labex labex 4096 May 20 10:30 cars
Теперь удалим эту директорию. Команда rmdir используется исключительно для удаления пустых директорий.
rmdir cars
Проверьте удаление, снова выполнив команду ls -ld.
ls -ld cars
На этот раз вы получите сообщение об ошибке, так как директория больше не существует. Это подтверждает, что rmdir сработала успешно.
ls: cannot access 'cars': No such file or directory
Команда rmdir работает только с пустыми папками. Но что если нам нужно создать структуру вложенных директорий? Попробуем создать путь pastry/pies/cakes. Чтобы автоматически создать все необходимые родительские папки, нужно использовать флаг -p (parents) с командой mkdir.
Выполните следующую команду:
mkdir -p pastry/pies/cakes
Чтобы просмотреть всю созданную структуру, используйте команду ls с флагами -l (подробный формат) и -R (рекурсивно).
ls -lR pastry
В выводе отобразится директория pastry и её поддиректории pies и cakes.
pastry:
total 4
drwxr-xr-x 3 labex labex 4096 May 20 10:35 pies
pastry/pies:
total 4
drwxr-xr-x 2 labex labex 4096 May 20 10:35 cakes
pastry/pies/cakes:
total 0
Теперь попробуем удалить директорию pastry с помощью rmdir.
rmdir pastry
Почему команда не сработала? Терминал выдаст ошибку:
rmdir: failed to remove 'pastry': Directory not empty
Это происходит потому, что rmdir может удалять только пустые папки, а pastry содержит поддиректорию pies.
Чтобы удалить директорию вместе со всем содержимым (включая поддиректории и файлы), необходимо использовать команду rm с флагом -r (recursive — рекурсивно). Будьте предельно осторожны с этой командой, так как она безвозвратно удаляет данные.
rm -r pastry
При успешном выполнении эта команда ничего не выводит. Вы можете убедиться, что папка pastry полностью удалена, снова запустив ls -ld pastry — вы должны получить ошибку «No such file or directory».
ls -ld pastry