Как да създадете директории в Linux с командата "mkdir"

Това ръководство ще ви покаже как да създавате нови папки или директории в Linux, като използвате командния ред.

Командата, която използвате за създаване на директории, е mkdir. Тази статия ви показва основния начин за създаване на директории в Linux, както и за покриване на всички налични комутатори.

Как да създадете нов

Най-лесният начин за създаване на нова директория е следният:

mkdir <име на папка>

Например, ако искате да създадете директория под вашата домашна папка, наречена тест, отворете прозореца на терминала и се уверете, че сте в домашната си папка (използвайте командата cd ~ ).

mkdir тест

Промяна на разрешенията на новия указател

След като създадете нова папка, може да поискате да зададете разрешенията, така че само определен потребител да има достъп до папката или да може някои хора да редактират файлове в папката, но други са само за четене.

В последния раздел ви показах как да създадете директория, наречена тест. Стартирането на командата ls ще ви покаже разрешенията за тази директория:

ls -lt

Шансовете са, че ще имате нещо в тази насока:

drwxr-xr-x 2 група собственици 4096 9 март 19:34 тест

Битовете, които ни интересуват, са собственик и група drwxr-xr-x

D ни казва, че тестът е директория.

Първите три знака след d са разрешенията на собственика на директорията, посочена от името на собственика.

Следващите три знака са груповите разрешения за файла, зададен от името на групата. Отново опциите са r, w и x. - означава, че липсва разрешение. В горния пример всеки, който принадлежи към групата, може да има достъп до папката и да чете файловете, но не може да пише в папката.

Последните три знака са разрешенията, които имат всички потребители и както виждате в горния пример, те са същите като разрешенията за групи.

За да промените разрешенията за файл или папка, можете да използвате командата chmod . Командата chmod ви позволява да зададете 3 номера, които задават разрешенията.

За да получите смес от разрешения, добавяте номерата заедно. Например, за да получите разрешения за четене и изпълнение, необходимия ви номер е 5, за да получите разрешение за четене и писане, номерът е 6 и за да получите разрешения за писане и изпълнение, броят е 3.

Не забравяйте, че трябва да посочите 3 номера като част от командата chmod. Първото число е за разрешенията на собственика, второто е за груповите разрешения и последният номер е за всички останали.

Например, за да получите пълно разрешение на собственика, да четете и изпълнявате разрешения за групата и да нямате разрешения за никой друг, въведете следното:

chmod 750 тест

Ако искате да промените името на групата, което притежава папка, използвайте командата chgrp.

Например, представете си, че искате да създадете директория, достъпна за всички счетоводители във вашата компания.

На първо място, създайте груповите профили, като въведете следното:

groupadd сметки

Ако нямате правилното разрешение да създадете група, може да се наложи да използвате sudo, за да получите допълнителни права или да преминете към профил с валидни разрешения, като използвате командата su .

Сега можете да промените групата за папка, като въведете следното:

chgrp сметки <име на папка>

Например:

chgrp тест за профили

За да дадете на някого в групата сметки прочетете, пишете и изпълнявайте достъпа, както и собственика, но само за четене на всички останали можете да използвате следната команда:

chmod 770 тест

За да добавите потребител в групата сметки, вероятно ще искате да използвате следната команда:

usermod -a -G сметки <потребителско име>

Горепосочената команда прикачва групата профили към списъка с вторични групи, до които потребителят има достъп.

Как да създадете директория и да зададете разрешения в същото време

Можете да създадете директория и да зададете разрешенията за тази директория по едно и също време, като използвате следната команда:

mkdir -m777 <име на папка>

Горната команда ще създаде папка, до която има достъп всеки. Много рядко бихте искали да създадете нещо с такива разрешения.

Създайте папка и родители, които са задължителни

Представете си, че искате да създадете структура на директорията, но не искате да създавате всяка отделна папка заедно с пътя и да работите по дърво.

Например може да създавате папки за вашата музика, както следва:

Би било неприятно да създавате рок папката, а след това папката alice and queen и след това да създадете папката за рап и папката dr dre, след това папката за джаз и след това папката louisjordan.

Като укажете следния ключ, можете да създадете всички родителски папки в движение, ако те вече не съществуват.

mkdir -p <име на папка>

Например, за да създадете един от посочените по-горе папки, опитайте следната команда:

mkdir -p ~ / music / rock / alicecooper

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

По подразбиране командата mkdir не ви казва дали директорията, която създавате, е създадена успешно. Ако не се появят грешки, можете да предположите, че има такива.

Ако искате да получите по-подробен изход, за да знаете какво е създадено, използвайте следния превключвател.

mkdir -v <име на папка>

Резултатът ще бъде по линиите на mkdir: създадена директория / път / към / directoryname .

Използвайки & quot; mkdir & в Shell Script

Понякога ще искате да използвате командата "mkdir" като част от скрипт на shell. Например, нека разгледаме скрипт, който приема пътя. Когато скриптът се изпълни, той ще създаде папката и ще добави един текстов файл, наречен "hello".

#! / Хамбар / Баш

mkdir $ @

cd $ @

докосване здравей

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

Командата "mkdir" се използва за създаване на папка. "$ @" ( Известни още като входни параметри ) в края на втория и третия ред се заменя с стойността, която сте посочили при изпълнение на скрипта.

Командата "cd" се променя в указаната директория и накрая командата за докосване създава празен файл, наречен "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 test) и изпълните директория ( ls), ще видите един файл, наречен "hello".

Досега толкова добре, но сега опитайте да стартирате стъпка 7 отново.

  1. Ще се появи грешка, която показва, че папката вече съществува.

Има различни неща, които можем да направим, за да подобрим сценария. Например, ако папката вече съществува, ние не се интересуваме толкова дълго, колкото съществува.

#! / Хамбар / Баш

mkdir -p $ @

cd $ @

докосване здравей

Ако зададете -p като част от командата mkdir, няма да греши, ако папката вече съществува, но ако не съществува, тя ще го създаде.

Както се случва, командата за докосване ще създаде файл, ако не съществува, но ако съществува, просто изменя последната достъпна дата и час.

Представете си, че изявлението за докосване е заменено с изявление за ехо, което пише текст във файл, както следва:

#! / Хамбар / Баш

mkdir -p $ @

cd $ @

ехо "здравей" >> Здравейте

Ако стартирате командата "./createhellodirectory.sh" отново и отново, ефектът ще бъде, че файлът, наречен "hello" в тестовата директория, ще нараства с повече и повече линии с думата "hello" в нея.

Сега това може или не може да бъде толкова предвидено, но да кажем за момента, че това не е желаното действие. Можете да напишете тест, за да сте сигурни, че директорията не съществува, преди да изпълните командата ехо, както следва.

#! / Хамбар / Баш

mkdir $ @ 2> / dev / null;

ако [$? -eq 0]; тогава

cd $ @

ехо "здравей" >> Здравейте

изход

Fi

Горният скрипт е моят предпочитан метод за обработка на създаването на папки. Командата mkdir създава папката, която се предава като входен параметър, но всеки изход за грешка се изпраща на / dev / null (което всъщност не означава никъде).

Третият ред проверява изходното състояние на предишната команда, която е "mkdir", а ако успее, ще изпълни изявленията, докато се достигне изявлението "fi".

Това означава, че можете да създадете папката и да изпълните всички неща, които искате, ако командата е успешна. Ако искате да направите нещо друго, ако командата не е била успешна, можете просто да въведете друг израз, както следва:

#! / Хамбар / Баш

mkdir $ @ 2> / dev / null;

ако [$? -eq 0]; тогава
cd $ @
ехо "здравей" >> Здравейте
изход
още
cd $ @
ехо "Здравей"> Здравейте
изход
Fi

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

Този пример не е особено практичен, защото бихте могли да постигнете едни и същи резултати, просто като винаги изпълнявате ехото "hello"> hello line . Точката на примера е да покаже, че можете да стартирате командата "mkdir", да скриете изхода за грешка, да проверите състоянието на командата, за да видите дали е била успешна или не и след това изпълнете един набор от команди, ако командата "mkdir" беше успешен и друг набор от команди, ако не беше така.