Jawaban:
Mungkin seperti itu
find . -type f | wc -l
akan melakukan trik. Coba perintah dari folder induk.
find . -type f -ls | wc -l
find . -type f -print0 | tr -d -c '\0' | wc -c
find . -type f -printf . | wc -c
- Saya mengadopsi cetakan untuk solusi saya, bukan gema -exec saya.
Untuk menghitung file (bahkan file tanpa ekstensi) di root direktori saat ini, gunakan:
ls -l | grep ^- | wc -l
Untuk menghitung file (bahkan file tanpa ekstensi) secara rekursif dari akar direktori saat ini, gunakan:
ls -lR | grep ^- | wc -l
Cara tercepat dan termudah adalah menggunakan tree
. Kecepatannya dibatasi oleh terminal output Anda, jadi jika Anda mengirim hasilnya tail -1
, Anda akan mendapatkan hasilnya segera. Anda juga dapat mengontrol ke level direktori apa yang Anda sukai hasilnya, menggunakan -L
opsi. Untuk keluaran berwarna, gunakan -C
. Sebagai contoh:
$ tree share/some/directory/ | tail -1
558 directories, 853 files
$ tree -L 2 share/some/directory/ | tail -1
120 directories, 3 files
Jika belum ada di sana, Anda bisa mendapatkannya di sini .
find -type f -printf . | wc -c
Jangan hitung garis keluaran find, karena nama file, yang berisi 99 baris baru, akan dihitung sebagai 100 file.
Gunakan perintah ini untuk setiap folder di jalur
for D in *; do echo $D; find $D -type f| wc -l; done
menemukan tampaknya lebih cepat daripada pohon jadi saya gunakan di bawah ini untuk menghitung file di setiap direktori direktori kerja saat ini (mengabaikan file dalam CWD) dengan memungkinkan direktori memiliki spasi:
ls -d */ | while read dir_line
do
echo -n "$dir_line :"
find "$dir_line" -type f | wc -l
done
ls
adalah ide yang sangat buruk.
Anda dapat gunakan find . | wc -l
find .
akan mencantumkan semua file dan folder dan isinya mulai dari folder Anda saat ini.
wc -l
menghitung hasil pencarian
Saya akan menggunakan opsi ini sendiri:
ls -alR | grep -c ^ -