Portál AbcLinuxu, 10. listopadu 2025 05:39
Řešení dotazu:
man ls a man wc
ls a wc. Třeba takový soubor, který má \n v názvu...
n=0; for soubor in *; do n=$(($n+1)); done; echo Počet souborů = $nale počítá to i adresáře (to jsou vlastně taky soubory) a nepočítá to skryté soubory/adresáře.
#!/bin/bash
n=0;
for soubor in *; do
n=$(($n+1));
# Tady bychom si mohli vypisovat název souboru:
# echo $soubor
done;
echo Počet souborů = $n
Nepočítá to skryté soubory (.foo) a naopak to počítá adresáře.Vždyť to tam píšu
Souhlasím, že tím findem se dá líp určit, co se má počítat – tohle bylo spíš k tomu, že se to dá spočítat čistě v bashi.
#!/bin/bash
n=0;
for soubor in * .*; do
if [ -f "$soubor" ]; then
n=$(($n+1));
# Tady bychom si mohli vypisovat název souboru:
# echo $soubor
fi;
done;
echo Počet souborů = $n
find /cesta/do/adresáře -type f | wc -l
find . -type f -mindepth 1 -maxdepth 1 -print0 2> /dev/null | hexdump -ve '1/1 "%02x\n"' | grep 00 | wc -l
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.