Kako ustvariti imenike v Linuxu z ukazom "mkdir"

Ta vodnik vam bo pokazal, kako ustvariti nove mape ali imenike v Linuxu s pomočjo ukazne vrstice.

Ukaz, ki ga uporabljate za ustvarjanje imenikov, je mkdir. V tem članku je prikazan osnovni način ustvarjanja imenikov v Linuxu in zajema vsa razpoložljiva stikala.

Kako ustvariti nov imenik

Najpreprostejši način ustvarjanja novega imenika je naslednji:

mkdir

Če na primer želite ustvariti imenik pod vašo domačo mapo, imenovano test, odprite okno terminala in se prepričajte, da ste v domači mapi (uporabite ukaz cd cd ).

mkdir test

Spreminjanje dovoljenj novega imenika

Ko ustvarite novo mapo, boste morda želeli nastaviti dovoljenja, tako da lahko le določenemu uporabniku dostopa do mape ali tako, da lahko nekateri ljudje urejate datoteke v mapi, drugi pa samo za branje.

V zadnjem poglavju sem vam pokazal, kako ustvariti imenik z imenom test. Z zagonom ukaza ls se prikažejo dovoljenja za ta imenik:

Je -lt

Verjetno boste imeli nekaj na tej liniji:

drwxr-xr-x 2 lastnik skupine 4096 9. mar 19:34 test

Bitov, ki nas zanimajo, so drwxr-xr-x lastnik in skupina

D nam pove, da je test imenik.

Prvi trije znaki po d so dovoljenja lastnika za imenik, ki ga določa ime lastnika.

Naslednji trije znaki so skupinska dovoljenja za datoteko, ki jo podaja ime skupine. Ponovno so možnosti r, w in x. - pomeni, da manjka dovoljenje. V zgornjem primeru lahko vsakdo, ki pripada skupini, dostopa do mape in preberi datoteke, ne more pa pisati v mapo.

Zadnji trije znaki so dovoljenja, ki jih imajo vsi uporabniki, in kot vidite v zgornjem primeru, so ti isti kot dovoljenja za skupino.

Če želite spremeniti dovoljenja za datoteko ali mapo, lahko uporabite ukaz chmod . Ukaz chmod vam omogoča, da določite 3 številke, ki določajo dovoljenja.

Če želite dobiti mešanico dovoljenj, jih skupaj dodate. Na primer, če želite prebrati in izvršiti dovoljenja, morate številko, ki jo potrebujete, 5, da dobite dovoljenja za branje in pisanje, številka 6 in da dobite dovoljenja za pisanje in izvajanje, številka 3.

Ne pozabite, da morate podati 3 številke kot del ukaza chmod. Prva številka je za dovoljenja lastnika, druga številka za dovoljenja skupine in zadnja številka je za vse ostale.

Če želite na primer pridobiti popolna dovoljenja za lastnika, prebrati in izvršiti dovoljenja v skupini in nobenih dovoljenj za nobeno drugo ne vnesite naslednje:

chmod 750 test

Če želite spremeniti ime skupine, ki ima v lasti mapo, uporabite ukaz chgrp.

Predstavljajte si, na primer, da želite ustvariti imenik, do katerega lahko dostopajo vsi računovodji v vašem podjetju.

Najprej ustvarite račune skupin tako, da vnesete naslednje:

skupinski računi

Če nimate pravilnega dovoljenja za ustvarjanje skupine, boste morda morali uporabiti sudo, da pridobite dodatne privilegije ali preklopite na račun z veljavnimi dovoljenji z ukazom su .

Sedaj lahko skupino za mapo spremenite tako, da vnesete naslednje:

chgrp račune

Na primer:

preskus računov chgrp

Če želite kogarkoli v skupini računov prebrati, napisati in izvršiti dostop, kot tudi lastnika, vendar samo za branje za vse ostale, lahko uporabite naslednji ukaz:

chmod 770 test

Če želite dodati uporabnika v skupino računov, boste verjetno želeli uporabiti ta ukaz:

usermod -a -G računi

Zgornji ukaz dodaja skupino računov na seznam sekundarnih skupin, do katerih ima uporabnik dostop.

Kako ustvariti imenik in nastaviti dovoljenja ob istem času

Ustvarite imenik in istočasno nastavite dovoljenja za ta imenik z naslednjim ukazom:

mkdir -m777

Zgornji ukaz bo ustvaril mapo, do katere imajo vsi dostop. Zelo redki ste, da bi radi ustvarili karkoli s takšnimi dovoljenji.

Ustvarite mapo in vse starše, ki so potrebni

Predstavljajte si, da želite ustvariti strukturo imenika, vendar ne želite ustvariti vsake posamezne mape skupaj s potjo in se potruditi po drevesu.

Na primer, lahko ustvarite mape za glasbo na naslednji način:

Bilo bi neprijetno, da bi morali ustvariti skalnato mapo, nato alice cooper in kraljico mapo in nato ustvariti mapo rap in mapo dr dre, nato pa jazz mapo in nato mapo louisjordan.

Z navedbo naslednjega stikala lahko ustvarite vse starševske mape, ki že obstajajo, če jih še ne obstajajo.

mkdir -p

Na primer, če želite ustvariti eno od zgoraj navedenih map, poskusite z naslednjim ukazom:

mkdir -p ~ / glasba / rock / alicecooper

Potrditev, da je bil ustvarjen imenik

Privzeto vam ukaz mkdir ne pove, ali je bil ustvarjen imenik uspešno ustvarjen. Če se ne pojavijo napake, lahko domnevate, da je.

Če želite dobiti bolj natančen izhod, tako da boste vedeli, kaj je bilo ustvarjeno, uporabite naslednje stikalo.

mkdir -v

Izhod bo potekal po vrsticah mkdir: ustvarjen directory / path / to / directoryname .

Uporaba & # 34; mkdir & # 34; v Shell Scriptu

Včasih boste želeli uporabiti ukaz "mkdir" kot del lupinskega skripta. Na primer, poglejmo skript, ki sprejema pot. Ko se scenarij izvede, bo ustvaril mapo in dodal eno besedilno datoteko, imenovano "zdravo".

#! / bin / bash

mkdir $ @

cd $ @

dotakni se zdravo

Prva vrstica mora biti vključena v vsak skript, ki ga napišete, in se uporablja za prikaz, da je to dejansko BASH skript.

Ukaz "mkdir" se uporablja za ustvarjanje mape. "$ @" ( Znana tudi kot vhodni parametri ) na koncu 2. in 3. vrstice se nadomesti z vrednostjo, ki jo določite pri zagonu skripta.

Ukaz "cd" se spremeni v imenik, ki ga izberete, in na koncu ukaz za ustvarjanje prazne datoteke ustvari prazno datoteko, imenovano "zdravo".

Skript lahko poskusite sami. To storite tako:

  1. Odprite terminalsko okno (pritisnite Alt in T bi to storili)
  2. Vnesite nano createhellodirectory.sh
  3. Vnesite zgornje ukaze v urejevalnik
  4. Shranite datoteko s hkratnim pritiskom tipk CTRL in O
  5. Izstopite iz datoteke tako, da hkrati pritisnete tipki CTRL in X
  6. Če želite spremeniti dovoljenja, vnesite chmod + x createhellodirectory.sh
  7. Zaženite skript tako, da vnesete test ./createhellodirectory.sh

Ko zaženete skripto, bo ustvarjen imenik z imenom »test« in če boste spremenili v ta imenik ( cd test) in zagnali vnos v imeniku ( ls), boste videli eno datoteko, imenovano »zdravo«.

Doslej je tako dobro, a sedaj še enkrat poskusite ponovno izvajati 7. korak.

  1. Pojavi se napaka, ki navaja, da mapa že obstaja.

Za izboljšanje scenarija lahko storimo različne stvari. Če na primer že obstaja mapa, ne skrbimo, dokler obstaja.

#! / bin / bash

mkdir -p $ @

cd $ @

dotakni se zdravo

Če podate ukaz -p kot del ukaza mkdir, potem ne bo prišlo do napake, če mapa že obstaja, če pa ne obstaja, jo bo ustvarila.

Kot se zgodi, bo ukaz za dodajanje ustvaril datoteko, če ne obstaja, če pa obstaja, preprosto spremeni zadnji datum in čas dostopa.

Predstavljajte si, da je bila izjava o dotiku zamenjana z izjavo o ehu, ki piše besedilo v datoteko na naslednji način:

#! / bin / bash

mkdir -p $ @

cd $ @

echo "zdravo" >> zdravo

Če zaženete ukaz "./createhellodirectory.sh test" znova in znova bo učinek, da se bo datoteka, imenovana "hello" v testnem imeniku, povečala in povečala z več vrsticami z besedo "hello" v njem.

Zdaj je to lahko ali pa tudi ne, kot je bilo predvideno, recimo pa, da to ni želeno dejanje. Preizkus lahko napišete, da se prepričajte, da imenik ne obstaja, preden zaženete ukaz echo na naslednji način.

#! / bin / bash

mkdir $ @ 2> / dev / null;

če [$? -eq 0]; potem

cd $ @

echo "zdravo" >> zdravo

izhod

fi

Zgornji scenarij je moj najprimernejši način za ravnanje z ustvarjanjem map. Ukaz mkdir ustvari mapo, ki se prenese kot vhodni parameter, vendar se vsak izhod napake pošlje na / dev / null (kar v bistvu pomeni nikjer).

Tretja vrstica preveri izhodni status prejšnjega ukaza, ki je izjava »mkdir« in če bo uspelo, bo izjave izvršil, dokler ne bo dosežen izpis »fi«.

To pomeni, da lahko ustvarite mapo in izvedete vse, kar želite, če je ukaz uspešen. Če želite narediti nekaj drugega, če ukaz ni bil uspešen, lahko preprosto vnesete drugo izjavo, kot sledi:

#! / bin / bash

mkdir $ @ 2> / dev / null;

če [$? -eq 0]; potem
cd $ @
echo "zdravo" >> zdravo
izhod
drugače
cd $ @
echo "zdravo"> zdravo
izhod
fi

V zgornjem skriptu, če deluje izjava mkdir, potem izjava o ehu pošlje besedo "zdravo" na konec datoteke, imenovano "hello", če pa ne obstaja, se bo ustvarila nova datoteka, imenovana "zdravo", z besedo " zdravo "v njem.

Ta primer ni posebej praktičen, ker bi lahko dosegli enake rezultate, tako da vedno uporabljate odmev "hello"> hello line . Točka primera je pokazati, da lahko zaženete ukaz "mkdir", skrijete izhod napake, preverite stanje ukaza, da vidite, ali je bil uspešen ali ne, in nato izvedite en komplet ukazov, če je ukaz "mkdir" je bil uspešen in še en niz ukazov, če ni bilo.