Kako kreirati direktorijume u Linuxu pomoću naredbe "mkdir"

Ovaj vodič će vam pokazati kako kreirati nove fascikle ili direktorijume unutar Linuxa koristeći komandnu liniju.

Komanda koju koristite za kreiranje direktorija je mkdir. Ovaj članak vam pokazuje osnovni način kreiranja direktorija u Linuxu, kao i pokrivanje svih dostupnih prekidača.

Kako napraviti novi direktorij

Najjednostavniji način kreiranja novog direktorijuma je sledeći:

mkdir

Na primer, ako želite da kreirate direktorijum pod vašom kućnom fasciklu pod nazivom test, otvorite prozor terminala i provjerite da li ste u vašem kućnom direktoriju (koristite komandu cd ~ ).

mkdir test

Promena dozvola novog imenika

Nakon kreiranja novog fascikla možda biste želeli da podesite dozvole tako da samo određeni korisnik može pristupiti fascikli ili tako da neki ljudi mogu da uređuju datoteke u fascikli, ali drugi imaju samo čitanje.

U poslednjem odeljku, pokazao sam vam kako kreirati direktorijum pod nazivom test. Pokretanje ls naredbe će vam pokazati dozvole za taj direktorijum:

Je-li

Šanse su da ćete imati nešto uz ove linije:

drwxr-xr-x 2 grupa vlasnika 4096 9 mar 19:34 test

Bitovi za koje smo zainteresovani su drwxr-xr-x vlasnik i grupa

D kaže da je test direktorijum.

Prva tri karaktera nakon d su vlasnička dozvola za direktorijum koji je naznačio ime vlasnika.

Sledeća tri karaktera su grupne dozvole za datoteku naznačenu nazivom grupe. Opet su opcije r, w i x. - znači da nema dozvole. U prethodnom primeru svi koji pripadaju ovoj grupi mogu pristupiti fascikli i čitati datoteke, ali ne mogu pisati u fasciklu.

Poslednji tri karaktera su dozvole koje imaju svi korisnici, a kao što možete videti u prethodnom primeru isti su isti kao i dozvole za grupe.

Za promjenu dozvola za datoteku ili fasciklu možete koristiti komandu chmod . Komanda chmod vam omogućava da navedete 3 brojeve koji postavljaju dozvole.

Da biste dobili mešavinu dozvola, zajedno unosite brojeve. Na primjer, da biste dobili čitanje i izvršavanje dozvola potreban broj je 5, da biste dobili dozvole za čitanje i pisanje broj 6 i da biste dobili dozvole za upis i izvršenje, broj je 3.

Zapamtite da je potrebno da navedete 3 brojeve kao dio komande chmod. Prvi broj je za dozvole vlasnika, drugi broj za grupne dozvole, a poslednji broj je za sve ostale.

Na primjer, da biste dobili potpune dozvole vlasniku, pročitajte i izvršite dozvole u grupi, a za bilo kog drugog ne dozvolite sljedeće:

chmod 750 test

Ako želite promijeniti ime grupe koja posjeduje fasciklu koristite komandu chgrp.

Na primer, zamislite da želite da kreirate direktorijum koji svi računovođe u vašoj kompaniji mogu pristupiti.

Prvo, kreirajte grupne račune tako što ćete uneti sledeće:

groupadd naloge

Ako nemate ispravnu dozvolu za kreiranje grupe, možda ćete morati da koristite sudo da biste dobili dodatne privilegije ili prebacili na račun sa važećim dozvolama pomoću su naredbe .

Sada možete da promenite grupu za fasciklu tako što ćete uneti sledeće:

chgrp naloge

Na primjer:

chgrp naloga test

Da bi bilo ko u grupi računa čitao, pisao i izvršio pristup, kao i vlasnik, ali samo za čitanje svima ostalima možete koristiti sljedeću naredbu:

chmod 770 test

Da biste dodali korisnika u grupu računa, verovatno ćete želeti da koristite sledeću komandu:

usermod -a -G naloga

Gornja komanda dodjeljuje grupu računa na listu sekundarnih grupa kojima korisnik ima pristup.

Kako kreirati direktorij i postaviti dozvole u isto vrijeme

Možete kreirati direktorij i istovremeno postaviti dozvole za taj direktorijum koristeći sljedeću komandu:

mkdir -m777

Gornja komanda će kreirati fasciklu kojoj svi imaju pristup. Vrlo retko je da biste želeli da napravite bilo šta sa ovakvim dozvolama.

Kreirajte fasciklu i sve roditelje koji su potrebni

Zamislite da želite da kreirate strukturu direktorijuma, ali ne želite da kreirate svaku pojedinačnu fasciklu zajedno sa načinom i da se krećete niz stablo.

Na primer, možda ćete kreirati foldere za muziku na sledeći način:

Bilo bi neprijatno kad je potrebno kreirati fasciklu, zatim Alice cooper i queen folder, a zatim kreirati mapu rap i dr dre fasciklu, a zatim jazz folder, a zatim i folder louisjordan.

Specifikacijom sledećeg prekidača možete kreirati sve roditeljske fascikle ukoliko već ne postoje.

mkdir -p

Na primer, da biste kreirali jedan od gorenavedenih mapa, pokušajte sledeću komandu:

mkdir -p ~ / muzika / rok / alicecooper

Dobijanje potvrde da je direktor kreiran

Podrazumevano, mkdir naredba ne govori da li je direktorijum koji kreirate uspešno kreiran. Ako se ne pojave greške onda možete pretpostaviti da ima.

Ako želite da dobijete više glomaznih izlaza tako da znate šta je kreirano koristite sledeći prekidač.

mkdir -v

Izlaz će biti u liniji mkdir: kreiran directory / path / to / directoryname .

Korišćenje & # 34; mkdir & # 34; u Shell Scriptu

Ponekad ćete želeti da koristite komandu "mkdir" kao deo shell skripte. Na primer, pogledajte skriptu koja prihvata putanju. Kada se skript izvrši, kreiraće se folder i dodati jednu tekstualnu datoteku pod nazivom "zdravo".

#! / bin / bash

mkdir $ @

cd $ @

dodirni zdravo

Prva linija treba da bude uključena u svaku skriptu koju pišete i koristi se da pokaže da je ovo zapravo BASH skripta.

Komanda "mkdir" se koristi za kreiranje fascikle. "$ @" ( Takođe poznat kao ulazni parametri ) na kraju drugog i trećeg reda zamjenjuje se s vrijednošću koju određujete prilikom pokretanja skripte.

Komanda "cd" se menja u direktorijum koji odredite i na kraju komanda dodira stvara praznu datoteku pod imenom "hello".

Možete iskoristiti scenario za sebe. Da biste to uradili sledite ova uputstva:

  1. Otvorite prozor terminala (pritisnite Alt i T da to uradite)
  2. Unesite nano createhellodirectory.sh
  3. Upišite naredbe iznad u editor
  4. Sačuvajte datoteku pritiskom na CTRL i O istovremeno
  5. Izađite iz datoteke pritiskom na CTRL i X istovremeno
  6. Promenite dozvole upisivanjem chmod + x createhellodirectory.sh
  7. Pokrenite skriptu upisivanjem testa ./createhellodirectory.sh

Kada pokrenete skriptu, kreiraće se direktorijum pod nazivom "test", a ako se promeni u taj direktorijum ( cd test) i pokrenete listing liste ( ls), videćete jednu datoteku koja se zove "zdravo".

Do sada je tako dobro, ali sada pokušajte ponovo za korak 7.

  1. Pojaviće se greška u kojoj se navodi da mapa već postoji.

Postoje različite stvari koje možemo učiniti da poboljšamo skriptu. Na primjer, ako već postoji folder, mi ne briga sve dok to postoji.

#! / bin / bash

mkdir -p $ @

cd $ @

dodirni zdravo

Ako navedete -p kao dio mkdir naredbe, onda neće pogrešiti ako direktorijum već postoji, ali ako ne postoji, kreiraće ga.

Kao što se dešava, dodirna naredba će stvoriti datoteku ako ne postoji, ali ako postoji, ona jednostavno menja poslednji datum i vrijeme pristupa.

Zamislite da je dodirni izraz zamenjen sa echo izrazom koji piše tekst u datoteku na sledeći način:

#! / bin / bash

mkdir -p $ @

cd $ @

echo "hello" >> hello

Ako pokrenete komandu "./createhellodirectory.sh test" opet i opet će uticati da će se datoteka zvana "hello" u test direktorijumu povećati i povećati sa sve više linija uz reč "hello" u njemu.

Sada, ovo može biti ili možda neće biti kako je namerno, ali recimo za sada da to nije željena akcija. Možete da napišete test kako biste bili sigurni da direktorija ne postoji pre nego što pokrenete komandu echo na sledeći način.

#! / bin / bash

mkdir $ @ 2> / dev / null;

ako [$? -eq 0]; onda

cd $ @

echo "hello" >> hello

Izlaz

fi

Navedeni scenario je moj omiljeni metod za rukovanje stvaranjem fascikli. Komanda mkdir kreira fasciklu koja se prenosi kao ulazni parametar, ali svaki izlaz greške se šalje na / dev / null (što u suštini znači nigdje).

Treća linija provjerava status izlaza prethodne komande koja je izraz "mkdir" i ako uspije, izvršiće izjave sve dok se ne dostigne izraz "fi".

To znači da možete kreirati fasciklu i izvršiti sve što želite ako je komanda uspešna. Ako želite nešto drugo uraditi ako komanda nije uspjela onda jednostavno možete uneti drugu izjavu na sljedeći način:

#! / bin / bash

mkdir $ @ 2> / dev / null;

ako [$? -eq 0]; onda
cd $ @
echo "hello" >> hello
Izlaz
drugo
cd $ @
echo "zdravo"> zdravo
Izlaz
fi

U gore navedenom skriptu, ako izjava mkdir funkcioniše onda echo izjava šalje riječ "zdravo" do kraja datoteke zvane "hello", dok ako ne postoji nova datoteka će se kreirati zvana "zdravo" riječom " zdravo "u njemu.

Ovaj primjer nije posebno praktičan, jer možete postići iste rezultate jednostavno tako što ćete uvijek voditi eho "hello"> hello liniju . Tačka primjera je pokazati da možete pokrenuti komandu "mkdir", sakriti izlaz greške, provjeriti status komande da biste vidjeli da li je uspješan ili ne, a zatim izvršite jedan skup komandi ako je komanda "mkdir" bio je uspešan i još jedan skup komandi ako nije.