Jak používat příkaz ls k výpisu souborů a adresářů v systému Linux

Příkaz Linux ls používáme každý den, aniž bychom o tom přemýšleli. To je škoda. Věnujte tomu trochu pozornosti a najdete mnoho užitečných možností – včetně některých, které byste měli přidat do svého arzenálu příkazového řádku.

ls Vypisuje soubory a adresáře

Příkaz ls je pravděpodobně prvním příkazem, se kterým se většina uživatelů Linuxu setká. Ti z nás, kteří se potulují kolem příkazového řádku, jej používají den co den, aniž bychom o tom vůbec přemýšleli. To by mohlo vysvětlovat, proč je v tomto příkazu více, než si většina uživatelů uvědomuje. Uvádíme seznam souborů, abychom viděli, co je v adresáři. Soubory uvádíme v dlouhém formátu, když se chceme podívat na oprávnění k souboru. Kromě toho se to málo bere v úvahu.

Příkaz ls je jedním z těch příkazů s velkým množstvím možností. Možná je to součástí problému. Existuje tolik možností, jak je prozkoumat, abyste našli ty užitečné? A když jste je našli, jak si je pamatujete?

Užitečné permutace příkazu ls s jejich řetězci voleb a parametrů jsou perfektními kandidáty na aliasy. Ve skutečnosti je ve většině distribucí to, co si představujete jako příkaz „naked“ ls, ve skutečnosti alias. Mimo jiné lze použít příkaz type zobrazit základní definici aliasů. Podívejme se na definici ls:

typ ls

Parametry –color=auto jsou zahrnuty automaticky při každém použití příkazu ls. To je to, co poskytuje různé barvy pro různé typy souborů ve výpisech.

Jednoduché výpisy ls

Každý, kdo strávil nějaký čas používáním linuxového terminálu, ví, že ls standardně uvádí seznam souborů a adresářů v aktuálním adresáři.

ls

Pokud chcete, aby byl váš záznam vytvořen v jednom sloupci, použijte možnost -1 (jeden soubor na řádek):

ls -1

Za chvíli probereme ten divně vypadající název souboru v horní části seznamu.

Použití ls v různých adresářích

Chcete-li, aby ls vypsal soubory v jiném adresáři, než je aktuální adresář, předejte cestu k adresáři ls na příkazovém řádku. Můžete také předat více než jeden adresář ls a nechat je vypsat jeden po druhém. Zde žádáme ls, aby vypsal soubory ve dvou adresářích, jeden s názvem „Help“ a druhý s názvem „gc_help“.

ls Help gc_help

Když ls vypíše obsah prvního adresáře, vypíše obsah druhého. Vytiskne název každého adresáře, jak je zpracovává:

  Jak vyčistit a zrychlit Arch Linux

Použití vzorů souborů

Chcete-li selektivně vypsat sadu souborů, použijte porovnávání vzorů. Otazník „?“ bude představovat libovolný jednotlivý znak a hvězdička „*“ bude představovat libovolný řetězec znaků. Chcete-li vypsat všechny soubory nebo adresáře, které mají názvy začínající na „ip_“, použijte tento formát:

ls ip_*

Chcete-li zobrazit soubory, které mají příponu „.c“, použijte tento formát:

ls *.c

Můžete také použít ls s grep a použít grep’s schopnosti porovnávání vzorů. Podívejme se na všechny soubory, které mají ve svém názvu řetězec „_pin_“:

ls | grep _pin_

To je téměř stejné jako použití samotného ls se dvěma zástupnými znaky:

ls | grep _pin_
ls *_pin_*

Proč skoro stejně? Všimněte si různých rozložení. grep vynutí výstup s jediným souborem na formát řádku.

Netisknutelné znaky

Je možné se najít s názvem souboru, který má a netisknoucí nebo řídicí znak v jeho souboru. Obvykle se to může stát, když rozbalíte archiv, který jste si stáhli z webu, nebo načtete úložiště git a původní autor udělal při vytváření souboru chybu, ale nenašel ho.

Náš podivný soubor je jeden z těchto:

Pokud se na něj podíváme v prohlížeči souborů a stiskneme „F2“ pro jeho přejmenování, netisknutelné znaky jsou znázorněny zvláštním symbolem.

Můžete použít volbu -b (escape), která vám umožní vidět, co název souboru skutečně obsahuje. Tato volba způsobí, že ls použije escape sekvence souboru C programovací jazyk reprezentovat kontrolní znaky.

ls -b a*

Tajemná postava je odhalena jako postava nové řady, která je v C zastoupena jako „n“.

Ignorování souborů

Chcete-li některé soubory ze seznamu vynechat, použijte volbu –hide. Předpokládejme, že nechcete ve výpisu vidět záložní soubory „.bak“. Můžete použít tento příkaz:

ls
ls --hide=*.bak

Soubory „.bak“ nejsou zahrnuty ve druhém seznamu.

Dlouhý formát výpisu

Volba -l (dlouhý výpis) způsobí, že ls poskytne podrobné informace o každém souboru.

ls -l

Je zde spousta informací, tak si je pojďme projít.

První věc, kterou ls zobrazí, je celková velikost všech souborů ve výpisu. Poté se každý soubor nebo adresář zobrazí na řádku samostatně.

První sada deseti písmen a pomlček představuje typ souboru a oprávnění vlastníka, skupiny a dalších souborů.

Úplně první znak představuje typ souboru. Bude to jeden z:

–: Běžný soubor.
b: Blokový speciální soubor.
c: Speciální znakový soubor.
d: Adresář.
l: Symbolický odkaz.
n: Síťový soubor.
p: Pojmenovaná dýmka.
s: Zásuvka.

Dalších devět znaků jsou tři skupiny po třech znacích zobrazených souvisle. Každá skupina tří představuje oprávnění ke čtení, zápisu a spouštění v tomto pořadí. Pokud je oprávnění uděleno, bude přítomno r, w nebo x. Pokud povolení není uděleno, zobrazí se pomlčka –.

  Jak používat filtry Wireshark v systému Linux

První sada tří znaků jsou oprávnění pro vlastníka souboru. Druhá sada tří oprávnění je pro členy skupiny a poslední sada tří oprávnění je pro ostatní.

Někdy je exekuční povolení pro vlastníka zastoupeno s. To je setuid bit. Pokud je přítomen, znamená to, že soubor je spuštěn s oprávněními vlastníka souboru, nikoli uživatele, který soubor spouští.

Povolení k provedení pro skupinu může být také s. To je setgid bit. Když je toto aplikováno na soubor, znamená to, že soubor bude spuštěn s oprávněními skupiny vlastníka. Při použití s ​​adresářem převezmou všechny soubory vytvořené v něm oprávnění skupiny z adresáře, ve kterém jsou vytvářeny, nikoli od uživatele, který soubor vytváří.

Povolení k provedení pro ostatní může být někdy reprezentováno t. To je lepkavý kousek. Obvykle se aplikuje na adresáře. Pokud je toto nastaveno, bez ohledu na oprávnění k zápisu a spustitelnosti, která jsou nastavena pro soubory v adresáři, může soubory v adresáři přejmenovat nebo odstranit pouze vlastník souboru, vlastník adresáře nebo uživatel root.

Běžně se lepivý bit používá ve složkách jako „/tmp“. Toto mohou zapisovat všichni uživatelé počítače. Lepivý bit v adresáři zajišťuje, že uživatelé – a procesy spouštěné uživateli – mohou pouze přejmenovat nebo odstranit své vlastní dočasné soubory.

Můžeme vidět lepivý bit v adresáři „/tmp“. Všimněte si použití volby -d (adresář). To způsobí, že ls hlásí podrobnosti o adresáři. Bez této volby bude ls hlásit soubory v adresáři.

ls -l -d /tmp

Číslo následující za oprávněními je počet pevných odkazů na soubor nebo adresář. U souboru je to obvykle jeden, ale pokud se vytvoří další pevné odkazy, toto číslo se zvýší. Adresář má obvykle alespoň dva pevné odkazy. Jeden je odkaz na sebe a druhý je jeho záznam v jeho nadřazeném adresáři.

Dále se zobrazí jméno vlastníka a skupiny. Za nimi následuje velikost souboru a datum poslední úpravy souboru. Nakonec je uveden název souboru.

Lidsky čitelné velikosti souborů

Mít velikosti souborů v bajtech není vždy vhodné. Chcete-li zobrazit velikosti souborů v nejvhodnějších jednotkách (kilobajtech, megabajtech atd.), použijte volbu -h (čitelné pro člověka):

ls -l -h

Zobrazení skrytých souborů

Chcete-li zobrazit skryté soubory, použijte volbu -a (vše):

ls -l -a

Dva záznamy „.“ a „..“ představují aktuální adresář a nadřazený adresář. Soubor s názvem „.base_settings“ je nyní viditelný poprvé.

  Jak nastavit vývojové nástroje pro Android v systému Linux

Vynechání . a .. z výpisů

Pokud nechcete, aby byl váš zápis přeplněný „.“ a „..“ záznamy, ale chcete vidět skryté soubory, použijte volbu -A (téměř všechny):

ls -l -A

Skrytý soubor je stále uveden, ale „.“ a položky „..“ jsou potlačeny.

Výpis adresářů rekurzivně

Chcete-li, aby ls vypsal soubory ve všech podadresářích, použijte volbu -R (rekurzivní).

ls -l -R

ls prochází celým stromem adresářů pod počátečním adresářem a uvádí soubory v každém podadresáři.

Zobrazení UID a GID

Chcete-li místo jména uživatele a názvu skupiny zobrazit ID uživatele a ID skupiny, použijte volbu -n (číselné uid a gid).

ls -n

Třídění výpisů

Výpis můžete seřadit podle přípony, velikosti souboru nebo času úpravy. Tyto možnosti není nutné používat u formátu dlouhého výpisu, ale obvykle to má smysl. Pokud třídíte podle velikosti souboru, má smysl vidět velikosti souborů ve výpisu. Při řazení podle typu rozšíření není formát dlouhého výpisu tak důležitý.

Chcete-li seřadit podle přípony, použijte volbu -X (sort by extension).

ls -X -1

Adresáře jsou uvedeny jako první (žádné přípony), poté následují ostatní v abecedním pořadí podle přípon.

Chcete-li seřadit podle velikosti souboru, použijte volbu -S (sort by file size).

ls -l -h -S

Pořadí řazení je od největšího po nejmenší.

Chcete-li seřadit výpis podle času úpravy, použijte volbu -t (seřadit podle času úpravy).

ls -l -t

Výpis je řazen podle času úpravy.

Pokud je čas úpravy souboru v rámci aktuálního roku, zobrazené informace jsou měsíc, den a čas. Pokud datum změny nebylo v aktuálním roce, zobrazené informace jsou měsíc, den a rok.

Rychlý způsob, jak získat nejnovější a nejstarší soubory v adresáři, je použít ls s příkazy head a tail.

Chcete-li získat nejnovější soubor nebo adresář, použijte tento příkaz:

ls -t | head -1

Chcete-li získat nejstarší soubor nebo adresář, použijte tento příkaz:

ls -t | tail -1

Chcete-li obrátit pořadí řazení

Chcete-li obrátit jakékoli pořadí řazení, použijte volbu -r (obrátit).

ls -l -h -S -r

Výpis je nyní řazen od nejmenšího souboru po největší soubor.

A je toho víc

Podívejte se na manuálovou stránku pro ls, možností je mnohem více. Některé z nich vyhovují poněkud obskurním případům použití, ale jednou za čas budete rádi, že o nich víte.

Potřebujete vidět časová razítka souborů s maximální přesností, kterou Linux může poskytnout? Využijte možnost na plný úvazek:

ls --full-time

Možná chcete vidět počet inodů souborů? Použijte volbu inode:

ls -i

Pracujete na monochromatickém displeji a chcete odstranit všechna rizika záměny souborů za adresáře a odkazy? Použijte volbu klasifikovat a ls připojí ke každé položce výpisu jedno z těchto:

/: Adresář.
@: Symbolický odkaz.
|: Pojmenovaná dýmka.
=: Zásuvka.
*: Spustitelné soubory

ls -F

Udělejte nějaké kopání. Zjistíte, že ls je bohatá žíla a budete neustále objevovat drahokamy.