Hoe om lêers in Linux te skep met die "mkdir" opdrag

Hierdie gids sal jou wys hoe om nuwe dopgehou of dopgehou in Linux te skep met die opdraglyn.

Die opdrag wat u vir die maak van dopgehou gebruik, is mkdir. In hierdie artikel word die basiese manier om dopgehou in Linux te maak, sowel as om alle beskikbare skakelaars te dek.

Hoe om 'n nuwe gids te skep

Die eenvoudigste manier om 'n nuwe gids te skep is soos volg:

mkdir

As jy byvoorbeeld 'n gids wil maak onder jou tuisblad, genaamd toets, maak 'n terminaal venster oop en maak seker dat jy in jou tuisgids is (gebruik die CD ~ -opdrag ).

mkdir toets

Verandering van die Toestemmings van die Nuwe Gids

Nadat u 'n nuwe lêer geskep het, wil u dalk die toestemmings stel sodat slegs 'n sekere gebruiker toegang tot die gids kan hê of sodat sommige mense lêers kan wysig in die gids, maar ander slegs lees.

In die laaste gedeelte het ek jou gewys hoe om 'n gids genaamd toets te skep. As u die ls-opdrag uitvoer, sal u die toestemmings vir daardie gids wys:

ls -lt

Die kanse is dat jy iets sal hê soos volg:

drwxr-xr-x 2 eienaar groep 4096 Mar 9 19:34 toets

Die bisse waarin ons belangstel, is drwxr-xr-x eienaar en groep

Die d vertel ons dat toets 'n gids is.

Die eerste drie karakters na die d is die eienaar se regte vir die gids wat deur die eienaar se naam gespesifiseer word.

Die volgende drie karakters is die groeptoegewings vir die lêer wat deur die groepnaam gespesifiseer word. Weereens is die opsies r, w en x. Die - beteken dat daar 'n toestemming ontbreek. In die bostaande voorbeeld kan enigeen wat tot die groep behoort, toegang tot die gids kry en die lêers lees, maar kan nie na die gids skryf nie.

Die laaste drie karakters is die toestemmings wat alle gebruikers het en soos u kan sien in die voorbeeld hierbo, is dit dieselfde as die groepspermitte.

Om die regte vir 'n lêer of gids te verander, kan u die chmod- opdrag gebruik. Die chmod opdrag laat u 3 nommers spesifiseer wat die toestemmings stel.

Om 'n mengsel van toestemmings te kry, voeg jy die getalle bymekaar. Byvoorbeeld om leesregte te lees en uit te voer, is die nommer wat jy benodig is 5, lees en skryf toestemmings, die nommer is 6 en skryf en voer regte uit. Die nommer is 3.

Onthou, jy moet 3 nommers spesifiseer as deel van die chmod-opdrag. Die eerste nommer is vir die eienaar toestemmings, die tweede nommer is vir die groep toestemmings en die laaste nommer is vir almal anders.

Byvoorbeeld, om volle toestemmings op die eienaar te kry, moet u toestemmings op die groep lees en uitvoer en geen toestemmings vir enigiemand anders tik die volgende nie:

chmod 750 toets

As u die groepnaam wat 'n gids besit, wil verander, gebruik die chgrp-opdrag.

Verbeel jou byvoorbeeld dat jy 'n gids wil skep wat al die rekenmeesters in jou maatskappy kan gebruik.

Maak eers die groeprekeninge deur die volgende te tik:

groupadd rekeninge

As jy nie die regte toestemming het om 'n groep te skep nie, moet jy sudo gebruik om ekstra regte te verkry of oor te skakel na 'n rekening met geldige regte met die su-opdrag .

Nou kan jy die groep vir 'n gids verander deur die volgende te tik:

chgrp rekeninge

Byvoorbeeld:

chgrp rekeninge toets

Om iemand in die rekeninge te gee, lees, skryf en voer toegang sowel as die eienaar, maar lees-alleen vir almal anders, kan jy die volgende opdrag gebruik:

chmod 770 toets

Om 'n gebruiker in die rekeninggroep te voeg, sal jy waarskynlik die volgende opdrag wil gebruik:

usermod -a-G rekeninge

Bogenoemde opdrag voeg die rekeninggroep by die lys sekondêre groepe waaraan die gebruiker toegang het.

Hoe om 'n gids te skep en toestemmings op dieselfde tyd te stel

U kan 'n gids skep en die toestemmings vir daardie gids op dieselfde tyd stel met die volgende opdrag:

mkdir-m777

Bogenoemde opdrag sal 'n gids skep waaraan almal toegang het. Dit is baie skaars dat jy iets met hierdie soort toestemmings wil skep.

Skep 'n gids en enige ouers wat benodig word

Stel jou voor dat jy 'n gidsstruktuur wil skep, maar jy wil nie elke individuele gids saam met die pad skep nie en werk jou pad af in 'n boom.

Byvoorbeeld, jy kan soos volg dopgehou vir jou musiek skep:

Dit sal irriterend wees om die rockmap te skep, dan die alice cooper en queen folder en dan die rap gids en die dr dre gids en dan die jazz gids en dan die louisjordan gids.

Deur die volgende skakelaar te spesifiseer, kan jy al die ouer-dopgehou in die lug skep as dit nie reeds bestaan ​​nie.

mkdir -p

Om byvoorbeeld een van die bogenoemde vouers te skep, probeer die volgende opdrag:

mkdir -p ~ / musiek / rock / alicecooper

Bevestiging ontvang dat 'n gids geskep is

By verstek vertel die mkdir-opdrag jou nie of die gids wat jy skep, suksesvol geskep is nie. As daar geen foute verskyn nie, kan jy aanvaar dat dit bestaan.

As jy meer verbose uitset wil kry, sodat jy weet wat geskep is, gebruik die volgende skakelaar.

mkdir -v

Die uitset sal wees in die lyne van mkdir: geskep gids / pad / na / gidsnaam .

Gebruik "mkdir & # 34; in 'n Shell-skrip

Soms sal jy die "mkdir" -opdrag wil gebruik as deel van 'n skulpkrip. Kom ons kyk byvoorbeeld na 'n script wat 'n pad aanvaar. Wanneer die script uitgevoer word, sal dit die gids skep en 'n enkele tekslêer genaamd "hallo" byvoeg.

#! / Bin / bash

mkdir $ @

CD $ @

raak hallo

Die eerste reël moet ingesluit word in elke skrif wat jy skryf en word gebruik om te wys dat dit wel 'n BASH-skrip is.

Die "mkdir" -opdrag word gebruik om 'n gids te skep. Die "$ @" ( ook bekend as invoer parameters ) aan die einde van die 2de en 3de reël word vervang met die waarde wat u spesifiseer wanneer u die skrip uitvoer.

Die "cd" -opdrag verander in die gids wat jy spesifiseer en uiteindelik skep die opdragbevel 'n leë lêer genaamd 'hallo'.

U kan die skrif vir uself probeer. Om dit te doen, volg hierdie instruksies:

  1. Open 'n terminaal venster (druk Alt en T moet dit doen)
  2. Voer nano createhellodirectory.sh in
  3. Tik die instruksies hierbo in die redakteur
  4. Stoor die lêer deur op CTRL en O terselfdertyd te druk
  5. Sluit die lêer af deur op CTRL en X terselfdertyd te druk
  6. Verander die toestemmings deur tik chmod + x createhellodirectory.sh
  7. Begin die script deur tik. /createhellodirectory.sh toets

As jy die script hardloop, word 'n gids genaamd 'toets' geskep, en as jy na daardie gids ( CD toets) verander en 'n kataloguslys ( ls) uitvoer, sal jy 'n enkele lêer genaamd "hallo" sien.

Tot dusver so goed, maar probeer nou weer stap 7.

  1. Daar word 'n fout vertoon met die vermelding dat die gids al bestaan.

Daar is verskeie dinge wat ons kan doen om die skrif te verbeter. Byvoorbeeld, as die gids al bestaan, gee ons nie soveel aandag nie, solank dit bestaan.

#! / Bin / bash

mkdir -p $ @

CD $ @

raak hallo

As u die -p as deel van die mkdir-opdrag spesifiseer, sal dit nie fout wees as die gids al bestaan ​​nie, maar as dit nie bestaan ​​nie, sal dit dit skep.

Soos dit gebeur, sal die opdragbevel 'n lêer skep as dit nie bestaan ​​nie, maar as dit bestaan, verander dit net die laaste toeganklike datum en tyd.

Stel jou voor dat die aanraking stelling vervang is met 'n echo-stelling wat teks soos volg op 'n lêer skryf:

#! / Bin / bash

mkdir -p $ @

CD $ @

eggo "hallo" >> hallo

As u die opdrag ". /createhellodirectory.sh test" hardloop, sal die effek wees dat die lêer genaamd "hallo" in die toetsgids groter en groter word met meer en meer lyne met die woord "hallo" daarin.

Nou, dit mag of mag nie so beplan wees nie, maar laat ons nou sê dat dit nie die verlangde aksie is nie. U kan 'n toets skryf om seker te maak dat die gids nie bestaan ​​voordat u die echo-opdrag soos volg uitvoer nie.

#! / Bin / bash

mkdir $ @ 2> / dev / null;

as [$? -qq 0]; dan

CD $ @

eggo "hallo" >> hallo

uitgang

fi

Bogenoemde skrip is my voorkeur metode vir die hantering van die skep van dopgehou. Die mkdir-opdrag skep die gids wat as 'n invoerparameter geslaag word, maar enige foutuitset word na / dev / null gestuur (wat in wese niks beteken nie).

Die derde lyn kontroleer die uitvoerstatus van die vorige opdrag wat die "mkdir" stelling is en as dit geslaag het, sal dit die stellings uitvoer totdat die "fi" -sets bereik is.

Dit beteken dat jy die gids kan skep en al die dinge kan uitvoer as die opdrag suksesvol is. As jy iets anders wil doen as die opdrag nie suksesvol was nie, kan jy eenvoudig 'n ander stelling soos volg invul:

#! / Bin / bash

mkdir $ @ 2> / dev / null;

as [$? -qq 0]; dan
CD $ @
eggo "hallo" >> hallo
uitgang
anders
CD $ @
eggo "hallo"> hallo
uitgang
fi

In die bostaande skrip as die mkdir-stelling werk, stuur die echo-stelling die woord "hallo" na die einde van die lêer genaamd "hallo". As dit nie bestaan ​​nie, sal 'n nuwe lêer geskep word met die naam "hallo" met die woord " hallo "in dit.

Hierdie voorbeeld is nie besonder prakties nie, want jy kan dieselfde resultate behaal eenvoudig deur altyd die echo "hallo"> hallo lyn te gebruik . Die punt van die voorbeeld is om aan te toon dat u die mkdir-opdrag kan uitvoer, die foutuitset verberg, die status van die opdrag nagaan om te kyk of dit suksesvol was of nie en dan een stel opdragte uitvoer as die mkdir-opdrag was suksesvol en nog 'n stel bevele as dit nie was nie.