Skip to main content

Как создать каталоги в Linux с командой «mkdir»

Linux команда mkdir и команды создания файлов. (Апрель 2025)

Linux команда mkdir и команды создания файлов. (Апрель 2025)
Anonim

В этом руководстве будет показано, как создавать новые папки или каталоги в Linux с помощью командной строки.

Команда, которую вы используете для создания каталогов, - mkdir. В этой статье вы найдете основной способ создания каталогов в Linux, а также для охвата всех доступных переключателей.

Как создать новый каталог

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

MkDir

Например, если вы хотите создать каталог под домашней папкой с именем test, откройте окно терминала и убедитесь, что находитесь в своей домашней папке (используйте команду cd ~).

Тест mkdir

Изменение разрешений для нового каталога

После создания новой папки вы можете установить разрешения, чтобы только определенный пользователь мог получить доступ к папке или чтобы некоторые люди могли редактировать файлы в папке, а другие - только для чтения.

В последнем разделе я показал вам, как создать каталог с именем test. Запуск команды ls покажет вам разрешения для этого каталога:

ls -lt

Скорее всего, у вас будет что-то в этом роде:

drwxr-xr-x 2 группа владельцев 4096 9 марта 19:34 test

Интересующие нас биты:Владелец drwxr-xr-xа также группа

D сообщает нам, что test - это каталог.

Первые три символа после d являются разрешениями владельца для каталога, указанного именем владельца:

  • r означает чтение
  • w означает запись
  • x означает выполнение (что в данном случае означает, что вы можете получить доступ к папке)

Следующие три символа - это групповые разрешения для файла, указанного именем группы. Опять же, параметры: r, w и x. Это означает, что отсутствует разрешение. В приведенном выше примере любой, принадлежащий к группе, может получить доступ к папке и прочитать файлы, но не может писать в эту папку.

Заключительные три символа - это разрешения, которые все пользователи имеют и как вы можете видеть в приведенном выше примере, такие же, как и групповые.

Чтобы изменить разрешения для файла или папки, вы можете использоватьCHMODкоманда. Команда chmod позволяет указать 3 номера, которые устанавливают разрешения:

  • Разрешения для чтения = 4
  • write permissions = 2
  • выполнить разрешения = 1

Чтобы получить смесь разрешений, вы добавляете числа вместе. Например, чтобы получить разрешения на чтение и выполнение, вам понадобится 5, чтобы получить разрешения на чтение и запись, число равно 6, и чтобы получить разрешения на запись и выполнение, число равно 3.

Помните, что вам нужно указать 3 числа как часть команды chmod. Первый номер предназначен для прав владельца, второй номер для групповых разрешений, а последний номер для всех остальных.

Например, чтобы получить полные права на владельца, прочитать и выполнить разрешения для группы, и никакие разрешения для кого-либо еще не набирают следующее:

Тест chmod 750

Если вы хотите изменить имя группы, которой принадлежит папка, используйте команду chgrp.

Например, представьте, что вы хотите создать каталог, доступ к которому могут получить все бухгалтеры в вашей компании.

Прежде всего, создайте учетные записи групп, набрав следующее:

Учетные записи groupadd

Если у вас нет правильного разрешения на создание группы, вам может понадобиться использовать sudo для получения дополнительных привилегий или переключиться на учетную запись с допустимыми разрешениями с помощью команды su.

Теперь вы можете изменить группу для папки, введя следующее:

учетные записи chgrp

Например:

проверка учетных записей chgrp

Чтобы кто-либо из группы учетных записей мог читать, записывать и выполнять доступ, а также владельца, но только для чтения всем, вы можете использовать следующую команду:

Тест chmod 770

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

учетные записи usermod -a -G

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

Как создать каталог и установить разрешения в одно и то же время

Вы можете создать каталог и установить разрешения для этого каталога в одно и то же время, используя следующую команду:

mkdir -m777

Вышеприведенная команда создаст папку, к которой все имеют доступ. Очень редко вы хотите создать что-либо с такими разрешениями.

Создание папки и любых родителей, которые необходимы

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

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

  • / Главная / музыка / рок / Элис Купер
  • / Главная / музыка / рок / королева
  • / Главная / музыка / рэп / drdre
  • / Главная / музыка / джаз / louisjordan

Было бы очень неприятно создавать папку с камнем, затем папку с сокровищницей и королевой, а затем создать папку rap и папку dr dre, а затем папку с джазом, а затем папку louisjordan.

Указав следующий переключатель, вы можете создать все родительские папки «на лету», если они еще не существуют.

mkdir -p

Например, чтобы создать одну из перечисленных выше папок, попробуйте выполнить следующую команду:

mkdir -p ~ / music / rock / alicecooper

Получение подтверждения о создании каталога

По умолчанию команда mkdir не сообщает вам, был ли созданный вами каталог успешно создан. Если ошибок не появляется, вы можете предположить, что они есть.

Если вы хотите получить более подробный вывод, чтобы вы знали, что было создано, используйте следующий переключатель.

mkdir -v

Выход будет по линиямmkdir: созданный каталог / путь / в / имя_каталога.

Использование «mkdir» в скрипте оболочки

Иногда вам нужно использовать команду «mkdir» как часть сценария оболочки. Например, давайте посмотрим на скрипт, который принимает путь. Когда сценарий будет выполнен, он создаст папку и добавит один текстовый файл с именем «привет».

#! / bin / bash mkdir $ @ cd $ @ touch привет

Первая строка должна быть включена в каждый скрипт, который вы пишете, и используется, чтобы показать, что это действительно сценарий BASH.

Команда «mkdir» используется для создания папки. «$ @» (Также называемый входными параметрами) в конце второй и третьей строк заменяется значением, которое вы указываете при запуске скрипта.

Команда «cd» изменяется в указанный вами каталог и, наконец, команда touch создает пустой файл с именем «hello».

Вы можете попробовать сценарий для себя. Для этого выполните следующие инструкции:

  1. Откройте окно терминала (нажмите Alt и T)
  2. Войти nano createhellodirectory.sh
  3. Введите приведенные выше команды в редактор
  4. Сохраните файл, нажав одновременно клавиши CTRL и O
  5. Выйдите из файла, нажав одновременно клавиши CTRL и X
  6. Изменение разрешений путем ввода chmod + x createhellodirectory.sh
  7. Запустите скрипт, набрав ./createhellodirectory.sh test

Когда вы запустите скрипт, будет создан каталог с именем «test», и если вы перейдете в этот каталог (cd-тест) и запустите список каталогов (LS), вы увидите один файл с именем «привет».

Пока все хорошо, но теперь попробуйте выполнить шаг 7 снова.

  1. Появится сообщение о том, что папка уже существует.

Существуют различные способы улучшения сценария. Например, если папка уже существует, мы не особенно заботимся до тех пор, пока она существует.

#! / bin / bash mkdir -p $ @ cd $ @ touch привет

Если вы укажете -p как часть команды mkdir, это не будет ошибкой, если папка уже существует, но если она не существует, она создаст ее.

Как это бывает, команда touch создаст файл, если он не существует, но если он существует, он просто изменяет дату и время последнего доступа.

Представьте, что оператор touch был заменен выражением echo, которое записывает текст в файл следующим образом:

#! / bin / bash mkdir -p $ @ cd $ @ echo "hello" >> hello

Если вы снова и снова запускаете команду «./createhellodirectory.sh test», эффект будет заключаться в том, что файл, называемый «hello» в тестовом каталоге, будет становиться все больше и больше с большим количеством строк со словом «привет» в нем.

Теперь это может быть или не быть таким, как предполагалось, но пока скажем, что это не желаемое действие. Вы можете написать тест, чтобы убедиться, что каталог не существует до запуска команды echo следующим образом.

#! / bin / bash mkdir $ @ 2> / dev / null; если $? -eq 0; затем cd $ @ echo "hello" >> hello exit fi

Вышеупомянутый скрипт - мой предпочтительный метод обработки создания папок. Команда mkdir создает папку, которая передается в качестве входного параметра, но любой вывод ошибки отправляется в / dev / null (что по существу означает нигде).

Третья строка проверяет состояние вывода предыдущей команды, которая является оператором «mkdir», и если она преуспела, она будет выполнять инструкции до тех пор, пока не будет достигнута инструкция «fi».

Это означает, что вы можете создать папку и выполнить все необходимое, если команда будет успешной. Если вы хотите сделать что-то еще, если команда не была успешной, вы можете просто ввести оператор else следующим образом:

#! / bin / bash mkdir $ @ 2> / dev / null; если $? -eq 0; thencd $ @ echo "hello" >> helloexitelsecd $ @ echo "hello"> helloexitfi

В приведенном выше скрипте, если инструкция mkdir работает, оператор echo отправляет слово «hello» в конец файла с именем «hello», тогда как если он не существует, будет создан новый файл с именем «hello» со словом «hello», привет "в нем.

Этот пример не особенно практичен, потому что вы можете достичь тех же результатов, просто используя echo "hello"> hello line, Точка примера должна показать, что вы можете запустить команду «mkdir», скрыть вывод ошибки, проверить статус команды, чтобы убедиться, что она была успешной или нет, а затем выполнить один набор команд, если команда «mkdir» был успешным и еще одним набором команд, если это не так.