Yanıtlar:
Gibi bir şey olabilir
find . -type f | wc -l
hile yapardı. Komutu ana klasörden deneyin.
find . -type f -ls | wc -l
find . -type f -print0 | tr -d -c '\0' | wc -c
find . -type f -printf . | wc -c
- Çözümüm için -exec echo yerine baskıyı benimsiyorum.
Geçerli dizinin kökündeki dosyaları (uzantısı olmayan dosyalar bile) saymak için şunu kullanın:
ls -l | grep ^- | wc -l
Dosyaları (uzantısı olmayan dosyalar bile) geçerli dizinin kökünden yinelemeli olarak saymak için , şunu kullanın:
ls -lR | grep ^- | wc -l
En hızlı ve en kolay yol kullanmaktır tree
. Hızı çıkış terminalinizle sınırlıdır, bu nedenle sonucu tail -1
düşürürseniz hemen sonuç alırsınız. Ayrıca, -L
seçeneği kullanarak sonuçları hangi dizin seviyesinden sevdiğinizi kontrol edebilirsiniz . Renklendirilmiş çıktılar için kullanın -C
. Örneğin:
$ tree share/some/directory/ | tail -1
558 directories, 853 files
$ tree -L 2 share/some/directory/ | tail -1
120 directories, 3 files
Zaten orada değilse, bunu elde edebilirsiniz burada .
find -type f -printf . | wc -c
Bulun çıktı satırlarını saymayın, çünkü 99 yeni satır içeren dosya adları 100 dosya olarak sayılır.
Yoldaki her klasör için bu komutu kullanın
for D in *; do echo $D; find $D -type f| wc -l; done
Bulmak ağaçtan daha hızlı görünüyor, bu nedenle mevcut çalışma dizininin her bir dizinindeki (CWD'deki dosyaları yok sayarak) her bir dizindeki dosyaları saymak için dizinleri boşluk bırakarak ayırmak için kullandım:
ls -d */ | while read dir_line
do
echo -n "$dir_line :"
find "$dir_line" -type f | wc -l
done
ls
olduğunu çok kötü bir fikir.
Kullanabilirsiniz find . | wc -l
find .
Geçerli klasörünüzde başlayan tüm dosya ve klasörleri ve içeriğini listeler.
wc -l
Bulma sonuçlarını sayar
Bu seçeneğe kendim giderdim:
ls -alR | grep -c ^ -