Sepertinya cara termudah find /path/to/search -ls | wc -l
Temukan digunakan untuk berjalan melalui semua file dan folder.
-ls
untuk daftar (cetak) semua nama. Ini adalah default dan jika Anda membiarkannya, itu akan tetap berfungsi hampir semua sistem. (Hampir, karena beberapa mungkin memiliki default yang berbeda). Ini adalah kebiasaan yang baik untuk menggunakan ini secara eksplisit.
Jika Anda hanya menggunakan find /path/to/search -ls
bagian itu akan mencetak semua file dan direktori ke layar Anda.
wc
adalah jumlah kata. yang -l
pilihan mengatakan itu untuk menghitung jumlah baris.
Anda dapat menggunakannya dalam beberapa cara, misalnya
- wc testfile
- kucing testfile | toilet
Opsi pertama memungkinkan kita membuka file dan menghitung jumlah baris, kata, dan karakter dalam file itu. Opsi kedua melakukan hal yang sama tetapi tanpa nama file itu dibaca dari stdin.
Anda dapat menggabungkan perintah dengan pipa |
. Output dari perintah pertama akan disalurkan ke input dari perintah kedua. Dengan demikian find /path/to/search -ls | wc -l
gunakan find untuk membuat daftar semua file dan direktori dan mengumpankan hasilnya ke wc. Wc kemudian menghitung jumlah garis.
(Alternatif lain adalah `ls | wc ', tetapi menemukan jauh lebih fleksibel dan alat yang baik untuk belajar.)
[Edit setelah komentar]
Mungkin berguna untuk menggabungkan find dan exec.
Misalnya find / -type d ! \( -path proc -o -path dev -o -path .snap \) -maxdepth 1 -exec echo starting a find to count to files in in {} \;
akan mencantumkan semua direktori di /, batalkan sebagian yang tidak ingin Anda cari. Kami dapat memicu perintah sebelumnya pada masing-masing, menghasilkan sejumlah file per folder di /.
Namun:
- Ini menggunakan ekstensi khusus GNU -maxdepth.
Ini akan bekerja di Linux, tetapi tidak pada sembarang unix-a-sama.
- Saya menduga Anda mungkin benar-benar menginginkan sejumlah file untuk setiap subdir.