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.
- r označava čitanje
- w predstavlja pisanje
- x predstavlja izvršenje (što u ovom slučaju znači da možete pristupiti fascikli)
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.
- dozvole za čitanje = 4
- dozvole za pisanje = 2
- izvršiti dozvole = 1
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:
- / home / music / rock / alicecooper
- / home / muzika / rok / kraljica
- / home / muzika / rap / drdre
- / home / muzika / jazz / louisjordan
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:
- Otvorite prozor terminala (pritisnite Alt i T da to uradite)
- Unesite nano createhellodirectory.sh
- Upišite naredbe iznad u editor
- Sačuvajte datoteku pritiskom na CTRL i O istovremeno
- Izađite iz datoteke pritiskom na CTRL i X istovremeno
- Promenite dozvole upisivanjem chmod + x createhellodirectory.sh
- 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.
- 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.