GNU/Linux >> Znalost Linux >  >> Linux

Rekurzivní počítání souborů v adresáři Linuxu

Pro aktuální adresář:

find -type f | wc -l

Mělo by to fungovat:

find DIR_NAME -type f | wc -l

Vysvětlení:

  • -type f zahrnout pouze soubory.
  • | (a ne ¦ ) přesměruje find standardní výstup příkazu na wc standardní vstup příkazu.
  • wc (zkratka pro počet slov) počítá nové řádky, slova a bajty na svém vstupu (docs).
  • -l počítat pouze nové řádky.

Poznámky:

  • Nahraďte DIR_NAME s . pro provedení příkazu v aktuální složce.
  • Můžete také odstranit -type f zahrnout adresáře (a symbolické odkazy) do počtu.
  • Je možné, že tento příkaz bude přepočítán, pokud názvy souborů mohou obsahovat znaky nového řádku.

Vysvětlení, proč váš příklad nefunguje:

V příkazu, který jste ukázali, nepoužíváte "Pipe" (| ) pro spojení dvou příkazů, ale přerušený pruh (¦ ), které shell nerozpozná jako příkaz nebo něco podobného. Proto se zobrazí tato chybová zpráva.


Linux
  1. Maximální počet souborů/adresářů na Linuxu?

  2. Nalezení adresáře v linuxovém terminálu

  3. Linux:Porovnejte strukturu adresářů bez porovnávání souborů

  1. Jak extrahovat soubory Tar do konkrétního nebo jiného adresáře v Linuxu

  2. Jak najít soubor v Linuxu ve všech adresářích rekurzivně

  3. používat SED rekurzivně v linuxu?

  1. Počítání počtu souborů v adresáři pomocí C

  2. Odstraňte pouze soubory v adresáři v adresářích linux NOT

  3. linuxový příkaz k vyprázdnění všech souborů v adresáři