Hitung jumlah file dalam direktori di Linux? [Tutup]

333

Untuk menghitung jumlah file dalam suatu direktori, saya biasanya menggunakan

ls directory | wc -l

Tetapi adakah perintah lain yang tidak digunakan wc?

Kantura
sumber
16
Apa masalah sebenarnya wcyang mencegah Anda menggunakannya?
vanza
5
Tidak juga. Perintah Unix umumnya dimaksudkan untuk digunakan dengan cara ini, dirantai dalam pipa.
Michael Berkowski
2
Saya terhubung melalui ssh ke host lain untuk mengakses beberapa data. Sayangnya sekelompok perintah dasar sepertinya tidak berfungsi pada host ini. Jika saya menggunakan wc, ia mengembalikan "perintah yang tidak dikenal". Jadi saya mencari opsi lain.
Kantura
7
Gunakan treeperintah. Ini akan memberi Anda pohon dan di bagian bawah memberi tahu Anda berapa banyak file dan direktori. Jika Anda ingin file tersembunyi juga gunakan tree -a.
Elijah Lynn
5
@vanza " Apa sebenarnya masalah dengan wc ", bagaimana jika sebuah file memiliki \nnama file? Ya, sangat tidak mungkin! Namun secara teknis masih valid dan mungkin.
JamesThomasMoon1979

Jawaban:

524

ini satu:

ls -l . | egrep -c '^-'

catatan:

ls -1 | wc -l

Yang berarti:: lsdaftar file dalam direktori

-1: (itu SATU) hanya satu entri per baris. Ubah ke -1a jika Anda ingin file tersembunyi juga

|: keluaran pipa ke ...

wc: "jumlah kata"

-l: hitung lines.

Sajad Karuthedath
sumber
1
Tidak menunggu Saya membuat booboo. Anda memang benar Sajad Lfc. ls -1 dir | egrep -c '' Ini mengembalikan jumlah file dalam dir. Terima kasih.
Kantura
1
@SajadKaruthedath ls -l . | egrep -c '^-'tidak menghitung file tersembunyi. Saya sarankan menambahkan -abendera ke ls.
JamesThomasMoon1979
1
@ JamesThomasMoon1979: silakan periksa deskripsi saya
Sajad Karuthedath
1
Ini menunjukkan kesalahan ketika tidak ada file di folder. Gunakan ls -1 /dir 2>/dev/null | wc -l. Di sini output dari ls diarahkan ke / dev / null dan hasilnya nol bersih
Sathish
6
@runios itu karena ls -lmengembalikan baris tambahan di bagian atas menambahkan ukuran file untuk jumlah total. Anda harus menggunakan ls -1dan bukan ls -l. Juga jika seseorang ingin file tersembunyi tetapi tanpa direktori .dan ..Anda harus menggunakanls -1A | wc -l
Daniel Biegler