Jak vytvořit adresáře v systému Linux pomocí příkazu "mkdir"

Tato příručka vám ukáže, jak vytvořit nové složky nebo adresáře v Linuxu pomocí příkazového řádku.

Příkaz, který používáte pro vytváření adresářů, je mkdir. Tento článek vám ukáže základní způsob vytváření adresářů v systému Linux a pokrytí všech dostupných přepínačů.

Jak vytvořit nový adresář

Nejjednodušší způsob, jak vytvořit nový adresář, je následující:

mkdir

Chcete-li například vytvořit pod adresářem domovský adresář tzv. Test, otevřete okno terminálu a ujistěte se, že jste ve své domovské složce (použijte příkaz cd ~ ).

mkdir test

Změna oprávnění nového adresáře

Po vytvoření nové složky můžete nastavit oprávnění tak, aby ke složce mohl přistupovat pouze určitý uživatel, nebo někteří lidé mohou upravovat soubory ve složce, ale někteří mají pouze čtení.

V poslední části jsem vám ukázal, jak vytvořit adresář nazvaný test. Spuštěním příkazu ls se zobrazí oprávnění pro tento adresář:

ls -lt

Je pravděpodobné, že budete mít něco v tomto směru:

drwxr-xr-x 2 skupina vlastníků 4096 9 březen 19:34 test

Bity, o které máme zájem, jsou drwxr-xr-x vlastník a skupina

D nám říká, že test je adresář.

První tři znaky za znakem d jsou oprávnění vlastníka adresáře zadaného jménem vlastníka.

Další tři znaky jsou oprávnění skupiny pro soubor určený názvem skupiny. Opět jsou možnosti r, w a x. - znamená, že chybí povolení. Ve výše uvedeném příkladu může každý, kdo patří do skupiny, přistupovat ke složce a číst soubory, ale nemůže do složky zapisovat.

Poslední tři znaky jsou oprávnění, která mají všichni uživatelé a jak vidíte ve výše uvedeném příkladu, jsou stejné jako oprávnění skupiny.

Chcete-li změnit oprávnění pro soubor nebo složku, můžete použít příkaz chmod . Příkaz chmod umožňuje zadat 3 čísla, která nastavují oprávnění.

Chcete-li získat kombinaci oprávnění, přidáte čísla dohromady. Například pro získání oprávnění pro čtení a spouštění potřebného čísla je 5, pro získání oprávnění pro čtení a zápis je číslo 6 a pro získání oprávnění k zápisu a spouštění je číslo 3.

Nezapomeňte, že musíte zadat 3 čísla jako součást příkazu chmod. První číslo je pro oprávnění vlastníka, druhé číslo je pro oprávnění skupiny a poslední číslo je pro všechny ostatní.

Například získat úplná oprávnění vlastníka, číst a spouštět oprávnění skupiny a žádná oprávnění pro někoho jiného zadejte následující:

test chmod 750

Pokud chcete změnit název skupiny, která vlastní složku, použijte příkaz chgrp.

Představte si například, že chcete vytvořit adresář, který mohou mít všichni účetní ve vaší společnosti přístup.

Nejprve vytvořte účty skupiny zadáním následujícího:

groupadd účty

Pokud nemáte správné oprávnění k vytvoření skupiny, budete možná muset použít sudo k získání dalších oprávnění nebo přepnutí na účet s platnými oprávněními pomocí příkazu su .

Nyní můžete změnit skupinu pro složku zadáním následujícího:

účty chgrp

Například:

test chgrp účtů

Chcete-li, aby někdo v účtové skupině četl, zapisoval a spustil přístup i vlastníka, ale jen pro čtení všem ostatním, můžete použít následující příkaz:

test chmod 770

Chcete-li přidat uživatele do skupiny účtů, pravděpodobně budete chtít použít následující příkaz:

usermod -a -G účty

Výše uvedený příkaz připojí skupinu účtů ke seznamu sekundárních skupin, ke kterým má uživatel přístup.

Jak vytvořit adresář a nastavit oprávnění současně

Můžete vytvořit adresář a nastavit oprávnění pro tento adresář najednou pomocí následujícího příkazu:

mkdir -m777

Výše uvedený příkaz vytvoří složku, ke které má přístup každý. Je velmi vzácné, že byste chtěli vytvořit něco s tímto druhem oprávnění.

Vytvořte složku a všechny rodiče, které jsou vyžadovány

Představte si, že chcete vytvořit strukturu adresářů, ale nechcete vytvářet jednotlivé složky společně s cestou a pracovat po stromu.

Můžete například vytvářet složky pro svou hudbu takto:

Bylo by nepříjemné vytvořit skalní složku, pak alice cooper a queen složku a pak vytvořit složku rap a složku dr dre a potom složku jazzu a pak složku louisjordan.

Zadáním následujícího přepínače můžete vytvořit všechny nadřazené složky za běhu, pokud již neexistují.

mkdir -p

Chcete-li například vytvořit jednu ze složek uvedených výše, zkuste následující příkaz:

mkdir -p ~ / hudba / rock / alicecooper

Získání potvrzení o vytvoření adresáře

Ve výchozím nastavení příkaz mkdir neříká, že byl úspěšně vytvořen adresář, který vytváříte. Pokud se neobjeví žádná chyba, můžete předpokládat, že to má.

Pokud chcete získat více podrobného výstupu, abyste věděli, co bylo vytvořeno, použijte následující přepínač.

mkdir -v

Výstup se bude pohybovat podle řádků mkdir: vytvořený adresář / path / to / directoryname .

Používáním & # 34; mkdir & # 34; v Shell Script

Někdy budete chtít použít příkaz "mkdir" jako součást shellového skriptu. Podívejme se například na skript, který přijímá cestu. Po spuštění skriptu vytvoří složku a přidá jediný textový soubor s názvem "hello".

#! / bin / bash

mkdir $ @

cd $ @

Dobrý den

První řádek by měl být zahrnut v každém skriptu, který píšete, a slouží k prokázání, že je to opravdu skript BASH.

Příkaz "mkdir" slouží k vytvoření složky. Hodnota "$ @" ( také známá jako vstupní parametry ) na konci druhého a třetího řádku se nahradí hodnotou, kterou určíte při spuštění skriptu.

Příkaz "cd" se změní na zadaný adresář a nakonec dotykový příkaz vytvoří prázdný soubor s názvem "hello".

Můžete zkusit skript pro sebe. Postupujte podle těchto pokynů:

  1. Otevřete okno terminálu (stiskněte klávesy Alt a T by to mělo udělat)
  2. Zadejte nano createhellodirectory.sh
  3. Zadejte příkazy výše do editoru
  4. Soubor uložte stisknutím kláves CTRL a O současně
  5. Soubor ukončete stisknutím kláves CTRL a X současně
  6. Změňte oprávnění zadáním příkazu chmod + x createhellodirectory.sh
  7. Spusťte skript zadáním testu ./createhellodirectory.sh

Když spustíte skript, vytvoří se adresář s názvem "test" a pokud změníte tento adresář ( cd test) a spustíte výpis adresáře ( ls), uvidíte jeden soubor s názvem "hello".

Zatím je dobré, ale nyní zkuste spustit krok 7 znovu.

  1. Objeví se chyba, že složka již existuje.

Existují různé věci, které můžeme udělat pro zlepšení skriptu. Například pokud složka již existuje, netrpíme zvlášť, pokud existuje.

#! / bin / bash

mkdir -p $ @

cd $ @

Dobrý den

Pokud zadáte -p jako součást příkazu mkdir, nebude chybět, pokud složka již existuje, ale pokud neexistuje, vytvoří ji.

Jak se stane, dotykový příkaz vytvoří soubor, pokud neexistuje, ale pokud ano, jednoduše změní poslední přístupný datum a čas.

Představte si, že dotyčný příkaz byl nahrazen příkazem echo, který píše text do souboru následujícím způsobem:

#! / bin / bash

mkdir -p $ @

cd $ @

echo "hello" >> ahoj

Pokud spustíte příkaz "./createhellodirectory.sh test" znovu a znovu, efekt bude, že soubor s názvem "hello" v testovacím adresáři bude stále větší a větší s více a více řádky se slovem "hello" v něm.

To může nebo nemusí být tak zamýšlené, ale prozatím řekněme, že to není požadovaná akce. Můžete provést test a ujistit se, že adresář neexistuje před spuštěním příkazu echo následujícím způsobem.

#! / bin / bash

mkdir $ @ 2> / dev / null;

pokud [$? -eq 0]; pak

cd $ @

echo "hello" >> ahoj

výstup

fi

Výše uvedený skript je můj upřednostňovaný způsob manipulace s vytvářením složek. Příkaz mkdir vytvoří složku, která je předána jako vstupní parametr, ale jakýkoli chybový výstup je odeslán na / dev / null (což v podstatě neznamená nikde).

Třetí řádek kontroluje výstupní stav předchozího příkazu, což je příkaz "mkdir", a pokud je úspěšný, provede příkazy až do dosažení příkazu "fi".

To znamená, že můžete vytvořit složku a provést všechny potřebné kroky, pokud je příkaz úspěšný. Pokud chcete udělat něco jiného, ​​pokud příkaz nebyl úspěšný, můžete jednoduše zadat příkaz else následovně:

#! / bin / bash

mkdir $ @ 2> / dev / null;

pokud [$? -eq 0]; pak
cd $ @
echo "hello" >> ahoj
výstup
jiný
cd $ @
echo "hello"> ahoj
výstup
fi

Ve výše uvedeném skriptu, pokud příkaz mkdir funguje, pak příkaz echo pošle slovo "hello" na konec souboru s názvem "hello", zatímco pokud neexistuje, vytvoří se nový soubor s názvem "hello" se slovem " ahoj "v tom.

Tento příklad není obzvláště praktický, protože byste mohli dosáhnout stejných výsledků jednoduše tak, že vždy spusťte echo "hello"> hello line . Bodem příkladu je ukázat, že můžete spustit příkaz "mkdir", skrýt výstupní chybu, zkontrolovat stav příkazu, abyste zjistili, zda byl úspěšný nebo ne, a pak proveďte jednu sadu příkazů, pokud příkaz "mkdir" byl úspěšný a další sada příkazů, kdyby tomu tak nebylo.