- Делайте папки из терминала с помощью этой простой команды
- Как создать новый каталог
- Изменение разрешений нового каталога
- Как создать каталог и установить разрешения одновременно
- Создать папку и любые родители, которые необходимы
- Получение подтверждения, что каталог был создан
- Использование mkdir в скрипте оболочки
Делайте папки из терминала с помощью этой простой команды
Вы можете создавать новые папки/каталоги в Linux с помощью командной строки. Команда, которую вы используете для создания каталогов – это mkdir.
Ниже приводится полный обзор того, как создавать каталоги с помощью mkdir. Мы также рассмотрим параметры, которые вы можете использовать с mkdir, и правильный синтаксис, который вы должны использовать для правильной работы команды.
Как создать новый каталог
Простейший способ создать новый каталог заключается в следующем:
mkdir
Например, если вы хотите создать каталог с именем test , откройте окно терминала, перейдите к нужной папке, где вы хотите эту папку, и введите следующую команду:
тест mkdir
Команда cd ~ используется для изменения рабочего каталога, чтобы при вводе команды mkdir папка создавалась именно там, где вы хотите.
Изменение разрешений нового каталога
После создания новой папки вы можете захотеть установить разрешения, чтобы только определенный пользователь мог получить к ней доступ, или чтобы некоторые люди могли редактировать файлы в папке, а другие имели права только для чтения.
Чтобы продолжить приведенный выше пример, мы запустим команду ls, чтобы увидеть разрешения для папки с именем test :
ls -lt
Вы должны запустить команду ls в любой папке, в которой находится тестовая папка. Если это ваш домашний каталог (т. Е. Вы не использовали команду cd выше), то вам не нужно беспокоиться об изменении каталога здесь.
Вы должны увидеть что-то вроде этого (но, возможно, и с несколькими другими записями, учитывая, что там, вероятно, есть и другие папки):
drwxr-xr-x 2 группа владельцев 4096 22 января 10:43 тест
Нам интересны следующие элементы: владелец drwxrwxr-x 2 и группа группа .
- d говорит нам, что test – это каталог.
-
Первые три буквы, следующие за буквой d, являются разрешениями владельца для каталога, указанного в имени владельца:
- r предназначен для чтения
- w для записи
- x предназначен для выполнения (в данном случае это означает, что вы можете получить доступ к папке)
- Следующие три символа – это разрешения группы для файла, указанного в имени группы. Опять-таки варианты: r, w и x. Дефис означает, что отсутствует разрешение. В приведенном выше примере любой член группы может получить доступ к папке и просмотреть файлы, но не может записать в папку.
- Последние символы – это разрешения, которые есть у всех пользователей, и, как видно из приведенного выше примера, они совпадают с разрешениями группы.
Чтобы изменить разрешения для файла или папки, вы можете использовать команду chmod . Команда chmod позволяет вам указать три числа, которые устанавливают права доступа:
- Читать = 4
- Написать = 2
- Выполнить = 1
Добавьте числа вместе для смеси разрешений. Например, чтобы присвоить разрешения на чтение и выполнение, вам нужно 5 (4 + 1), или для разрешения на чтение и запись вы должны использовать число 6 (4 + 2).
Помните, что вам нужно указать три числа как часть команды chmod. Первое число предназначено для прав доступа владельца, второе – для полномочий группы, а последнее – для всех остальных.
Например, чтобы владелец имел полные права доступа, чтение и выполнение группы, а у кого-то не было никаких прав доступа, вы должны ввести следующее:
тест chmod 750
Используйте команду chgrp, чтобы изменить имя группы, которой принадлежит папка. Например, представьте, что вы хотите создать каталог, к которому могут обращаться все бухгалтеры вашей компании.
Сначала вы должны создать учетные записи группы, набрав следующее:
учетные записи groupadd
Если у вас нет правильного разрешения на создание группы, вам может потребоваться использовать sudo для получения дополнительных привилегий или перейти к учетной записи с действительными разрешениями с помощью команды su.
Теперь вы можете изменить группу для папки, набрав следующее:
Аккаунты chgrp
Например:
проверка учетных записей chgrp
Чтобы предоставить владельцу и всем остальным в группе учетных записей права чтения, записи и выполнения, но только для чтения только для других, вы должны использовать следующую команду:
тест chmod 770
Как создать каталог и установить разрешения одновременно
Вы можете создать каталог и одновременно установить разрешения для этого каталога, используя следующую команду:
mkdir -m777
Приведенная выше команда создаст папку, к которой у всех есть доступ. Очень редко вы захотите создать что-либо с такими разрешениями.
Создать папку и любые родители, которые необходимы
Представьте, что вы хотите создать структуру каталогов, но не хотите создавать каждую отдельную папку вместе со способом.
Например, вы можете создавать папки для вашей музыки следующим образом:
- /главная/музыка/рок/Элис Купер
- /главная/музыка/рок/королева
- /главная/музыка/рэп/drdre
- /главная/музыка/джаз/louisjordan
Было бы досадно создавать папку для рок-музыки Алисы Купер и королевы, а затем папки для рэпа и джаза для остальных.
Указав -p , вы можете создать все родительские папки на лету, если они еще не существуют:
mkdir -p
Например, эта команда mkdir используется для создания одной из папок, перечисленных выше:
mkdir -p ~/music/rock/alicecooper
Получение подтверждения, что каталог был создан
По умолчанию команда mkdir не сообщает, был ли созданный вами каталог успешно создан. Обычно, если ошибки не отображаются, вы можете предположить, что это сработало.
Однако, если вы хотите получить более подробный вывод, чтобы знать, что было создано, используйте переключатель -v :
mkdir -v
Выход будет по линии
mkdir: созданный каталог/path/to/directoryname
Использование mkdir в скрипте оболочки
Вы также можете использовать команду mkdir как часть сценария оболочки.
В нашем примере мы рассмотрим скрипт, который принимает путь. Когда скрипт будет выполнен, он создаст папку и добавит один текстовый файл с именем «hello».
#!/bin/bash
mkdir $ @
cd $ @
нажмите Привет
Первая строка должна быть включена в каждый скрипт, который вы пишете. Он используется, чтобы показать, что это действительно BASH-скрипт.
- mkdir , конечно, используется для создания папки.
- $ @ (также называемый входными параметрами), помещенный в конец второй и третьей строки, заменяется значением, которое вы указали при запуске скрипта.
- cd перейдет в указанный вами каталог.
- touch создает пустой файл с именем привет .
Выполните следующие шаги, чтобы попробовать скрипт самостоятельно:
-
Откройте окно терминала. Ctrl + Alt + T должен сделать это быстро.
-
Введите эту команду:
nano createhellodirectory.sh
-
Введите эти команды в редакторе:
#!/bin/bash
mkdir $ @
cd $ @
нажмите Привет
-
Сохраните файл с помощью сочетания клавиш Ctrl + O , а затем нажмите Ввод .
-
Используйте Ctrl + X для выхода из файла.
-
Измените разрешения, набрав это:
chmod + x createhellodirectory.sh
-
Выполните это, чтобы запустить скрипт:
./ createhellodirectory.sh test
-
Когда вы запустите скрипт, будет создан каталог с именем «test», и если вы перейдете в этот каталог ( тест cd ) и запустите список каталогов ( ls ), вы увидим один файл под названием “привет”.
Пока все хорошо, но теперь попробуйте Шаг 7 снова. Появится ошибка о том, что папка уже существует.
Есть несколько вещей, которые мы можем сделать, чтобы улучшить сценарий. Например, даже если папка уже существует, нам все равно, пока она там.
#!/bin/bash
mkdir -p $ @
cd $ @
touch hello
Если вы укажете -p как часть команды mkdir, это не приведет к ошибке, но если она не существует, она создаст папку.
Сенсорная команда создаст файл, если он не существует, но если он существует, он просто изменяет дату и время последнего доступа.
Представьте, что оператор touch был заменен оператором echo, который записывает текст в файл:
#!/bin/bash
mkdir -p $ @
cd $ @
повторить "привет" >> привет
Если вы снова и снова будете запускать команду ./ createhellodirectory.sh test , это приведет к тому, что файл с именем “hello” в каталоге тестов будет становиться все больше и больше с увеличением числа строк слова “привет” в этом.
Теперь, это может или не может быть так, как задумано, но давайте пока скажем, что это не желаемое действие. Вы можете написать тест, чтобы убедиться, что каталог не существует, прежде чем запустить команду echo:
#!/bin/bash
mkdir $ @ 2>/dev/null;
if [$? -экв 0]; затем
cd $ @
эхо "привет" >> привет
выход
fi
Приведенный выше скрипт является нашим предпочтительным методом для обработки создания папок. Команда mkdir создает папку, которая передается в качестве входного параметра, но любые сообщения об ошибках отправляются в/dev/null (что, по сути, нигде не означает).
Третья строка проверяет состояние вывода предыдущей команды, которая является оператором «mkdir», и в случае успеха выполняет операторы до тех пор, пока не будет достигнут оператор «fi».
Это означает, что вы можете создать папку и выполнять все, что вы хотите, если команда выполнена успешно. Если вы хотите сделать что-то еще, если команда не была успешной, вы можете просто ввести оператор else:
#!/bin/bash
mkdir $ @ 2>/dev/null;
if [$? -экв 0]; thencd $ @ echo "hello" >> helloexitelsecd $ @ echo "hello"> helloexitfi
В приведенном выше сценарии, если оператор mkdir работает, то оператор echo отправляет слово «hello» в конец файла с именем «hello», тогда как, если он не существует, будет создан новый файл «hello» со словом «hello». привет “в этом.
Этот пример не особенно практичен, потому что вы можете достичь тех же результатов, просто запустив строку echo “hello”> hello . Суть примера в том, чтобы показать, что вы можете запустить команду «mkdir», скрыть вывод ошибки, проверить состояние команды, чтобы увидеть, была ли она успешной или нет, а затем выполнить один набор команд, если «mkdir» Команда была успешной и другой набор, если это не так.