Linux: Počet souborů v adresáři

26 Čvn

Když používáme příkazovou řádku, občas se hodí příkaz na zobrazení počtu souborů v nějakém adresáři. Zvláště když něco exportujeme, tak snadno zjistíme, jestli nám tam soubory přibývají.

V grafickém prostředí Linuxu je to jednoduché. V nějakém správci souborů si snadno zobrazíme příslušný adresář a spočítáme kolik souborů tam je.

V terminálu, nebo v čistém Linuxu bez GUI to uděláme těmito způsoby.

Použití příkazu ls


ls | wc -l

Toto nám zobrazí počet souborů v adresáři, kde zrovna jsme. Pokud nechci aby se počítaly skryté soubory, přidám přepínač -A:


ls -A | wc -l

A když jsem někde úplně jinde, než v adresáři, kde chci zjistit počet souborů, tak je to takto:


ls -A /cesta/k/adresari | wc -l

Použití příkazu find


find . | wc -l  # zobrazí počet souborů v aktuálním adresáři

find /cesta/k/adresari | wc -l  # zobrazí počet souborů v jiném adresáři

To je podobné jako u předchozího příkazu ls. Find nabízí ale více možností.

Když chceme ukázat počet samotných souborů, použijeme možnost -type f:


find . -type f | wc -l

find /cesta/k/adresari -type f | wc -l

Zobrazí počet souborů v samotném adresáři i v jeho podadresářích.

Když chceme ukázat počet vnořených adresářů, použiju možnost -type d:


find . -type d | wc -l

find /cesta/k/adresari -type d | wc -l

A také můžeme použít možnost -maxdepth nebo -mindepth:


find . -maxdepth 1 -type f | wc -l

find /cesta/k/adresari -maxdepth 1 -type f | wc -l

Tento příkaz spočítá pouze soubory v hlavním adresáři (buď v tom, ve kterém stojíme, nebo kam ukazuje zadaná cesta) a vynechá případné podadresáře. Když použijeme -maxdepth 2, spočítá soubory v hlavním adresáři a v první vrstvě podadresářů, atd.

Použití příkazu tree

Příkaz tree zobrazí stromovou strukturu daného adresáře, a poskytne souhrn celkového počtu souborů a podadresářů na konci výpisu:


tree
.
├── 1031051.dat.gz
├── 1031052.dat.gz
├── 1031053.dat.gz
├── 1031054.dat.gz
├── 1031055.dat.gz
├── 1031056.dat.gz
├── 1031083.dat.gz
├── 1031085.dat.gz
├── 1031086.dat.gz
├── 1031094.dat.gz
├── 1031095.dat.gz
└── toc.dat

0 directories, 12 files

Když chceme do zobrazení a součtu zahrnout i skryté soubory, použijeme přepínač -a:


tree -a

Použití Bash skriptu

Počítací proces můžeme také automatizovat použitím jednoduchého Bash skriptu.

Tady je jednoduchý příklad skriptu, který spočítá všechny soubory v aktuálním adresáři:


#!/bin/bash
dir="."
count=$(find "$dir" | wc -l)
echo "V adresari $dir je aktualne $coutn souboru."

Tento skript používá příkaz find k sečtení všech souborů a adresářů včetně skrytých.

Tyto různé metody počítání souborů poskytují velkou flexibilitu a kontrolu a vyhovují tak různým potřebám a scénářům.

A je to…

Michal Šika - OK1MSI