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). 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: 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: 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. 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. 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: 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 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. 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: 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. 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. Ändra behörigheterna i det nya katalogen
Så här skapar du en katalog och ställer behörigheter på samma gång
Skapa en mapp och alla föräldrar som är nödvändiga
Få bekräftelse att ett katalog skapades
Använda "mkdir" i en Shell Script




