Jak víte, kolik souborů je v adresáři?
V tomto rychlém tutoriálu se naučíte různé způsoby, jak spočítat počet souborů v adresáři v Linuxu.
Metoda 1:Pro počítání čísla použijte příkaz ls a wc řádků v adresáři
Nejjednodušší a nejzřejmější možností je použít pro počítání počtu souborů příkaz wc.
ls | wc -l
Výše uvedený příkaz spočítá všechny soubory a adresáře, ale ne ty skryté. Můžete použít -A
pomocí příkazu ls zobrazíte skryté soubory, ale vynecháte . a .. adresáře:
ls -A | wc -l
Pokud chcete pouze spočítat počet souborů, včetně skrytých souborů, v aktuálním adresáři, můžete zkombinovat několik příkazů, jako je tento:
ls -Ap | grep -v /$ | wc -l
Dovolte mi vysvětlit, co to dělá:
-p
s ls přidá/
na konci názvů adresářů.-A
s ls vypíše všechny soubory a adresáře, včetně skrytých souborů, ale kromě . a .. adresáře.grep -v /$
zobrazuje pouze řádky, které NEODPOVÍDAJÍ (-v
option) řádky, které končí/
.wc -l
počítá počet řádků.
V zásadě používáte ls
zobrazit seznam všech souborů a adresářů (s / přidanými k názvům adresářů). Poté použijete přesměrování potrubí k analýze tohoto výstupu na příkaz grep. Příkaz grep zobrazí pouze řádky, které nemají / na konci. Příkaz wc pak spočítá všechny takové řádky.
Metoda 2:Použijte stromový příkaz pro počítání počtu souborů v adresáři
Pro zobrazení počtu souborů v aktuálním adresáři a všech jeho podadresářích můžete použít příkaz tree.
tree -a
Jak vidíte, poslední řádek výstupu ukazuje počet adresářů a souborů včetně těch skrytých díky volbě -a
.
Pokud chcete získat pouze počet souborů v aktuálním adresáři, vyjma podadresáře, můžete nastavit úroveň na 1 takto:
tree -a -L 1
Metoda 3:Pomocí příkazu find spočtěte počet souborů v adresáři
Evergreen příkaz find je docela užitečný, pokud jde o práci se soubory.
Pokud chcete spočítat počet souborů v adresáři, použijte nejprve příkaz find k získání všech souborů a poté je spočítejte pomocí příkazu wc.
find directory_path -type f | wc -l
S -type f
řeknete příkazu find, aby hledal pouze soubory.
Pokud soubory z podadresářů nechcete, omezte rozsah příkazu find na úrovni 1, tedy aktuálního adresáře.
find . -maxdepth 1 -type f | wc -l
V Linuxu by mohly existovat jiné způsoby, jak spočítat počet řádků v adresáři. Je na vás, jak se k tomu chcete postavit.
Doufám, že vám to pomůže. Neváhejte zanechat dotaz nebo návrh v sekci komentářů.