Skip to main content

Så här skapar du kataloger i Linux med kommandot 'mkdir'

20090926 Overview Of Divine Truth - Secrets Of The Universe S1P2 (Juni 2026)

20090926 Overview Of Divine Truth - Secrets Of The Universe S1P2 (Juni 2026)
Anonim

Den här guiden visar hur du skapar nya mappar eller kataloger i Linux med kommandoraden.

Kommandot du använder för att skapa kataloger är mkdir. I den här artikeln visas det grundläggande sättet att skapa kataloger i Linux samt täcka alla tillgängliga switchar.

Hur man skapar ett nytt katalog

Det enklaste sättet att skapa en ny katalog är följande:

mkdir

Om du till exempel vill skapa en katalog under din hemmapp som heter test, öppna ett terminalfönster och se till att du är i din hemmapp (använd cd-kommandot).

mkdir test

Ändra behörigheterna i det nya katalogen

Efter att ha skapat en ny mapp kanske du vill ställa in behörigheterna så att endast en viss användare kan komma åt mappen eller så att vissa personer kan redigera filer i mappen, men andra har endast läst.

I det sista avsnittet visade jag dig hur man skapar en katalog som heter test. Om du kör kommandot ls visas behörigheterna för den katalogen:

ls-lt

Chanserna är att du kommer att ha något enligt följande:

drwxr-xr-x 2 ägargrupp 4096 mar 9 19:34 test

De bitar vi är intresserade av ärdrwxr-xr-x ägareoch grupp

D berättar för oss att testet är en katalog.

De tre första bokstäverna efter d är ägarbehörigheterna för den katalog som anges av ägarens namn:

  • r står för läsning
  • w står för skriv
  • x står för körning (vilket i det här fallet betyder att du kan komma åt mappen)

De tre följande tecknen är gruppbehörigheterna för filen som anges av gruppnamnet. Återigen är alternativen r, w och x. Det betyder att det saknas ett tillstånd. I exemplet ovan kan någon som tillhör gruppen få tillgång till mappen och läsa filerna men kan inte skriva till mappen.

De sista tre tecknen är de behörigheter som alla användare har och som du kan se i exemplet ovan är de samma som gruppbehörigheterna.

För att ändra behörigheterna för en fil eller mapp kan du användachmodkommando. Chmod-kommandot låter dig ange 3 nummer som anger behörigheterna:

  • läs behörigheter = 4
  • skriv behörigheter = 2
  • kör behörigheter = 1

För att få en blandning av behörigheter lägger du till numren tillsammans. Till exempel för att läsa och utföra behörigheter är det antal du behöver 5, för att läsa och skriva behörigheter numret är 6 och för att få skriv och exekvera behörigheter numret är 3.

Kom ihåg att du måste ange 3 nummer som en del av chmod-kommandot. Det första numret är för ägartillstånd, det andra numret är för grupptillstånd och det sista numret är för alla andra.

Till exempel för att få fullständiga behörigheter på ägaren, läs och kör behörigheter i gruppen och inga behörigheter för någon annan skriver följande:

chmod 750 test

Om du vill ändra gruppnamnet som äger en mapp använd chgrp-kommandot.

Tänk dig att du vill skapa en katalog som alla revisorer i ditt företag kan komma åt.

Först och främst skapar du gruppkonton genom att skriva följande:

groupadd-konton

Om du inte har rätt behörighet att skapa en grupp kan du behöva använda sudo för att få extra behörigheter eller byta till ett konto med giltiga behörigheter med hjälp av su-kommandot.

Nu kan du ändra gruppen för en mapp genom att skriva följande:

chgrp-konton

Till exempel:

chgrp konton test

För att ge någon i kontona grupp, läs, skriv och kör åtkomst samt ägaren, men skrivskyddad till alla andra kan du använda följande kommando:

chmod 770 test

För att lägga till en användare i kontogruppen måste du förmodligen använda följande kommando:

usermod -a -G konton

Ovanstående kommando lägger till kontogruppen till listan över sekundära grupper som användaren har tillgång till.

Så här skapar du en katalog och ställer behörigheter på samma gång

Du kan skapa en katalog och ange behörigheterna för den katalogen samtidigt med följande kommando:

mkdir-m777

Ovanstående kommando kommer att skapa en mapp som alla har tillgång till. Det är väldigt sällsynt att du vill skapa något med denna typ av behörigheter.

Skapa en mapp och alla föräldrar som är nödvändiga

Tänk dig att du vill skapa en katalogstruktur men du vill inte skapa varje enskild mapp tillsammans med vägen och arbeta dig ner ett träd.

Du kan till exempel skapa mappar för din musik enligt följande:

  • / Home / musik / rock / Alice Cooper
  • / Home / musik / rock / drottning
  • / Home / musik / rap / DrDre
  • / Home / musik / jazz / louisjordan

Det skulle vara irriterande att skapa rockmappen, sedan Alice Cooper och Queen mappen och sedan skapa rapmappen och dr Dre-mappen och sedan jazzmappen och sedan mappen louisjordan.

Genom att ange följande omkopplare kan du skapa alla överordnade mappar i flygningen om de inte existerar redan.

mkdir-p

Om du till exempel vill skapa en av de listor som anges ovan trycker du på följande kommando:

mkdir -p ~ / music / rock / alicecooper

Få bekräftelse att ett katalog skapades

Som standard meddelar kommandot mkdir inte om katalogen du skapar skapades. Om inga fel uppstår kan du anta att den har.

Om du vill få mer verbose output så att du vet vad som har skapats använd följande switch.

mkdir -v

Utgången kommer att ligga i linje medmkdir: skapad katalog / sökväg / till / katalognamn.

Använda "mkdir" i en Shell Script

Ibland vill du använda kommandot "mkdir" som en del av ett skalskript. Låt oss exempelvis titta på ett skript som accepterar en sökväg. När manuset körs kommer det att skapa mappen och lägga till en enda textfil kallad "hej".

#! / bin / bash mkdir $ @ cd $ @ touch hej

Den första raden bör ingå i varje skript som du skriver och används för att visa att detta verkligen är ett BASH-skript.

Kommandot "mkdir" används för att skapa en mapp. "$ @" (Även känd som inmatningsparametrar) i slutet av 2: a och 3: e raden ersätts med det värde du anger när du kör skriptet.

Kommandot "cd" ändras till den katalog du anger och slutligen skapar kommandot en tom fil som heter "hej".

Du kan försöka skriptet ut för dig själv. För att göra så följ dessa instruktioner:

  1. Öppna ett terminalfönster (tryck på Alt och T ska göra det)
  2. Stiga på nano createhellodirectory.sh
  3. Skriv in kommandona ovan i redigeraren
  4. Spara filen genom att trycka på CTRL och O samtidigt
  5. Avsluta filen genom att trycka på CTRL och X samtidigt
  6. Ändra behörigheterna genom att skriva chmod + x createhellodirectory.sh
  7. Kör manuset genom att skriva ./createhellodirectory.sh test

När du kör skriptet skapas en katalog som heter "test" och om du ändrar till den katalogen (cd-test) och kör en kataloglista (ls), Du kommer att se en enda fil som heter "hej".

Hittills så bra men nu försök springa steg 7 igen.

  1. Ett fel uppstår som anger att mappen redan finns.

Det finns olika saker vi kan göra för att förbättra manuset. Till exempel, om mappen redan finns, bryr vi oss inte särskilt om så länge det finns.

#! / bin / bash mkdir -p $ @ cd $ @ touch hej

Om du anger -p som en del av kommandot mkdir blir det inte fel om mappen redan existerar men om den inte existerar skapas den.

Som det händer kommer kommandot kommandot skapa en fil om den inte existerar, men om den existerar ändras det bara det senast tillgängliga datumet och tiden.

Föreställ dig att touch-kontoutdraget ersattes med ett eko-uttalande som skriver text till en fil enligt följande:

#! / bin / bash mkdir -p $ @ cd $ @ echo "hej" >> hej

Om du kör kommandot "./createhellodirectory.sh test" igen och igen kommer effekten att filen "hej" i testkatalogen blir större och större med fler och fler rader med ordet "hej" i det.

Nu kan detta kanske vara så men det är men men vi säger för tillfället att detta inte är den önskade åtgärden. Du kan skriva ett test för att säkerställa att katalogen inte existerar innan du kör echo-kommandot enligt följande.

#! / bin / bash mkdir $ @ 2> / dev / null; om $? -qq; då cd $ @ echo "hej" >> hej avsluta fi

Ovanstående skript är mitt föredragna sätt att hantera skapandet av mappar. Kommandot mkdir skapar mappen som skickas som en inmatningsparameter men eventuell felutgång skickas till / dev / null (vilket i huvudsak betyder ingenstans).

Den tredje raden kontrollerar utgångsstatusen för det föregående kommandot, vilket är "mkdir" -satsen och om det lyckas kommer det att utföra deklarationer tills fi-fi-satsen uppnåtts.

Det betyder att du kan skapa mappen och utföra alla saker du vill ha om kommandot är framgångsrikt. Om du vill göra något annat om kommandot inte lyckades kan du helt enkelt ange ett annat uttalande enligt följande:

#! / bin / bash mkdir $ @ 2> / dev / null; om $? -qq; thencd $ @ echo "hej" >> helloexitelsecd $ @ echo "hej"> helloexitfi

I det ovanstående skriptet om mkdir-satsen fungerar, skickar ekotillståndet ordet "hej" till slutet av filen "hej", men om den inte existerar kommer en ny fil att skapas kallad "hej" med ordet " hej "i den.

Detta exempel är inte särskilt praktiskt eftersom du kan uppnå samma resultat helt enkelt genom att alltid köra eko "hej"> hej linje. Poängen i exemplet är att visa att du kan köra kommandot "mkdir", gömma felutmatningen, kontrollera status för kommandot för att se om det var lyckat eller inte och sedan utföra en uppsättning kommandon om kommandot "mkdir" lyckades och en annan uppsättning kommandon om det inte var det.