středa 6. května 2026

Linux: Příkaz ls

ls je jeden z nejpoužívanějších příkazů v Linuxu — a zároveň jeden z nejvíce podceňovaných.

V dnešním článku se tomuto super příkazu podíváme na zoubek. Kdo ho zná částečně, může si rozšířit obzory, kdo ho nezná - naučí se.


ls (list) slouží k výpisu obsahu adresáře. Zobrazuje soubory, složky, jejich vlastnosti a umožňuje filtrovat, řadit a formátovat výstup.
Je to základní nástroj pro orientaci v systému — ať už pracuješ v desktopovém Linuxu, nebo na serveru přes SSH.

  • ls je základní nástroj pro orientaci v systému
  • umožňuje zobrazit skryté soubory, detailní informace, řadit podle času nebo velikosti
  • kombinace ls -lha je nejpraktičtější pro každodenní práci
  • výstup ls -l je skvělý pro výuku práv a struktury souborů

Základní použití

Výpis aktuálního adresáře (toho, kde momentálně jsem)

ls

Výpis konkrétní cesty

ls /etc
ls ~/Dokumenty

Užitečné přepínače (s příklady)


ls -l — detailní výpis

Zobrazí soubory včetně práv, vlastníka, velikosti a data změny.

ls -l

Výstup je ideální pro vysvětlení práv (rwx), typů souborů a vlastníků. Viz můj starší článek.


ls -a — zobrazí i skryté soubory

Skryté soubory začínají tečkou (.bashrc, .git, .ssh, aj.).

ls -a

ls -lh — lidsky čitelné velikosti

Velikosti v kB/MB/GB místo bajtů.

ls -lh

Kombinace přepínačů

Linux umožňuje kombinovat přepínače do jednoho:

ls -lha

Tohle je nejpoužívanější varianta na serverech — kompletní, přehledný výpis.


ls -lt — řazení podle času

Nejnovější soubory nahoře.

ls -lt

ls -ltr — nejstarší nahoře

r = reverse (obrácené pořadí).

ls -ltr

ls -R — rekurzivní výpis

Vypíše i obsah podadresářů.

ls -R

Barevný výpis

Většina distribucí má barvy zapnuté automaticky.
Pokud ne, zapneme jej tímto příkazem:

ls --color=auto

Barvy pomáhají odlišit:

  • adresáře
  • spustitelné soubory
  • symlinky
  • archivy


Jak ls číst (stručný rozbor výstupu ls -l)

Ukázka:

drwxr-xr-x  2 root root 4096 May  5 10:20 logs
-rw-r--r--  1 root root  512 May  5 09:15 config.txt

Vysvětlení:

  • d = adresář (pokud je tam znak -, jde o soubor)
  • rwxr-xr-x = práva (vlastník / skupina / ostatní)
  • root root = vlastník a skupina
  • 4096 = velikost v B (bajtech)
  • May 5 10:20 = datum poslední změny
  • logs = název položky

Podrobněji viz můj starší článek.


Praktické příklady pro běžnou práci

1) Najít největší soubory v adresáři

ls -lhS

2) Zobrazit jen adresáře

ls -l | grep "^d"

3) Zobrazit jen soubory s příponou .log

ls *.log

4) Zobrazit soubory upravené dnes

ls -lt --time-style=+%Y-%m-%d | head

Další praktické příklady použití příkazu ls

Následující příklady pomohou při situacích, které lidé řeší při práci na serveru, v terminálu nebo při skriptování.

1) Zobrazit pouze soubory (bez adresářů)

ls -p | grep -v /

-p přidá lomítko za adresáře, takže je můžeš snadno odfiltrovat.

2) Zobrazit pouze adresáře (čistší varianta)

ls -d */

Rychlé, jednoduché, bez grepování.

3) Zobrazit soubory podle vzoru (pattern matching)

ls *.txt
ls img_*.jpg
ls backup-2024-??-??.tar.gz

Hodí se při práci s logy, exporty nebo fotkami.

4) Zobrazit jen prázdné soubory

ls -l | awk '$5 == 0'

$5 je velikost souboru — ideální pro čištění.

5) Zobrazit jen spustitelné soubory

ls -l | grep "^-..x"

Hodí se při hledání skriptů nebo binárek.

6) Zobrazit soubory změněné za poslední hodinu

ls -lt --time-style=long-iso | head

Skvělé při debugování nebo hledání posledních změn.

7) Zobrazit absolutní cesty všech položek

ls -d "$PWD"/*

Užitečné při skriptování, kdy potřebuješ plné cesty.

8) Zobrazit velikosti adresářů (kombinace s du)

ls to neumí přímo, ale často se to používá společně:

du -sh */

9) Zobrazit symlinky a jejich cíle

ls -l | grep "^l"

10) Barevný výpis vynucený i v pipe

Normálně barvy v pipe zmizí. Tohle je obejde:

ls --color=always | less -R

11) Zobrazit položky seřazené podle velikosti

ls -lS

12) Zobrazit položky seřazené podle přípony

ls -lX

13) Zobrazit položky seřazené podle verze (užitečné pro soubory typu v1, v2…)

ls -lv

15) Zobrazit položky s plnou časovou informací (včetně sekund)

ls -l --full-time

16) Zobrazit položky s inode číslem

ls -li

Hodí se při řešení problémů se symlinky nebo hardlinky.

Advice
Většina adminů používá v .bashrc:
alias ll='ls -lha'

Pokročilé příklady použití ls

Tady jsou pokročilejší, technicky zajímavé a praktické příklady, které se hodí pro detailnější práci v systému Linux. Tyhle příkazy už nejsou „běžné“, ale ukazují sílu ls v kombinaci s dalšími nástroji, filtrováním, skriptováním a správou systému.

1) Výpis souborů podle práv (např. jen soubory se spustitelným bitem)

ls -l | awk '$1 ~ /^-..x/'

Filtruje jen soubory, které mají spustitelný bit pro vlastníka.

2) Najít soubory, které mají „příliš otevřená“ práva (např. 777)

ls -l | awk '$1 ~ /rwxrwxrwx/'

Hodí se při auditu bezpečnosti. Funguje i na adresáře.

3) Zobrazit soubory podle typu (sockety, FIFO, symlinky…)

ls -l | grep "^s"   # sockety
ls -l | grep "^p"   # FIFO
ls -l | grep "^l"   # symlinky

4) Zobrazit soubory s přesným časovým formátem (ISO 8601)

ls -l --time-style=long-iso

Ideální pro logování a skripty.

5) Výpis s tříděním podle inode (užitečné při řešení hardlinků)

ls -li | sort -n

6) Zobrazit počet souborů v adresáři (bez find)

ls -1 | wc -l

7) Zobrazit absolutní cesty všech souborů včetně skrytých

ls -A | sed "s|^|$PWD/|"

8) Zobrazit jen prázdné adresáře

ls -l | awk '$1 ~ /^d/ && $5 == 0'

9) Zobrazit soubory podle velikosti, ale jen nad určitou hranici

ls -l | awk '$5 > 1000000'

Zobrazí soubory větší než 1 MB.

10) Zobrazit soubory podle času změny (např. posledních 10 minut)

ls to neumí přímo, ale kombinace s find je běžná:

find . -maxdepth 1 -mmin -10 -exec ls -l {} \;

11) Zobrazit soubory seřazené podle verze (v1, v2, v10…)

ls -lv

-v je „natural sort“ — správně řadí čísla.

12) Zobrazit soubory podle rozšířených atributů (xattrs)

ls -l --full-time --context

Zobrazí SELinux kontexty a další metadata.

13) Zobrazit symlinky včetně cílové cesty a inode cíle

ls -l | awk '/^l/ {print $9, "->", $11}'

14) Zobrazit jen soubory, které nejsou symlinky

ls -l | grep -v "^l"

15) Zobrazit soubory podle typu MIME (kombinace s file)

ls -1 | xargs file --mime-type

16) Zobrazit soubory s barvami i při přesměrování (vynucené)

ls --color=always | less -R

17) Výpis s přesným časem včetně časové zóny

ls -l --time-style="+%Y-%m-%d %H:%M:%S %Z"

18) Zobrazit soubory podle vlastníka nebo skupiny

ls -l | awk '$3 == "root"'
ls -l | awk '$4 == "www-data"'

19) Zobrazit soubory podle typu (jen regular files)

ls -l | grep "^-" 

20) Zobrazit soubory s počtem hardlinků

ls -l | awk '{print $2, $9}'

Expertní příklady použití ls

Tady přidávám EXPERTNÍ příklady, které jdou ještě dál než pokročilé.
Tohle jsou věci, které používají administrátoři při ladění výkonu, řešení problémů se souborovým systémem, inode strukturou, porovnáváním adresářů, skriptováním a automatizací.

1) Porovnání dvou adresářů pomocí ls + diff

Rychlé zjištění rozdílů mezi dvěma složkami:

diff <(ls -1A dir1) <(ls -1A dir2)

Výsledek ukáže, co přibylo, ubylo nebo se změnilo.

2) Detekce souborů se stejným inode (hardlinky)

ls -li | awk '{print $1, $9}' | sort | uniq -d

Zobrazí inode čísla, která se opakují → tedy hardlinky.

3) Zobrazení souborů podle změny inode (diagnostika FS)

ls -li --time=ctime | sort -k10,10

Hodí se při hledání souborů, které byly přesunuty nebo měnily metadata.

4) Výpis souborů podle nanosekundového timestampu

ls -l --time=mtime --time-style="+%Y-%m-%d %H:%M:%S.%N"

Užitečné při ladění závodních podmínek (race conditions) ve skriptech.

5) Zobrazení souborů podle ACL práv (pokud FS podporuje)

ls -l --full-time --author

Zobrazí autora, čas, práva, ACL a další metadata.

6) Zobrazení souborů podle SELinux kontextu

ls -lZ

Neocenitelné při řešení problémů s webovými servery na RHEL/CentOS/Fedora.

7) Výpis souborů podle typu blokového zařízení

ls -l /dev | grep "^b"

Rychlá diagnostika disků a blokových zařízení.

8) Zobrazení souborů podle major/minor čísel (device nodes)

ls -l /dev | awk '{print $5, $6, $10}'

Užitečné při práci s udev pravidly.

9) Výpis souborů seřazených podle inode (FS debugging)

ls -li | sort -n -k1,1

Pomáhá odhalit fragmentaci nebo nečekané chování FS.

10) Zobrazení souborů podle změny práv (ctime)

ls -lc

ctimemtime → změna metadat, ne obsahu.

11) Výpis souborů podle změny vlastníka

ls -l --time=ctime | grep "root"

Hodí se při auditu bezpečnosti.

12) Zobrazení souborů podle velikosti v blocích (disk usage)

ls -s

Ukazuje skutečnou alokaci na disku, ne jen velikost souboru.

13) Zobrazení souborů s rozšířenými atributy (xattrs)

ls -l --full-time --context

Zobrazí SELinux, AppArmor, extended attributes.

14) Výpis souborů podle času přístupu (atime)

ls -lu

Užitečné při hledání „mrtvých“ souborů.

15) Výpis souborů podle času vytvoření (birth time)

Pokud FS podporuje (např. ext4 s journalingem):

ls -l --time=birth

16) Zobrazení souborů podle velikosti bloků (optimalizace FS)

ls -l --block-size=1M

17) Výpis souborů s přesnou epoch časovou značkou

ls -l --time-style=+%s

Perfektní pro logování a porovnávání timestampů.

18) Zobrazení souborů podle typu MIME (kombinace s file)

ls -1 | xargs file --mime-type

19) Výpis souborů podle počtu hardlinků

ls -l | awk '$2 > 1'

20) Výpis souborů podle toho, zda jsou sparse (děravé) soubory

ls -ls | awk '$1 $lt; ($6/1024)'

Ukáže soubory, které zabírají méně místa, než je jejich logická velikost.


Vše je samozřejmě dohledatelné v manuálu příkazu ls. Zajisté tam najdete ještě další možnosti použití tohoto příkazu.