cara menavigasi direktori dengan banyak file

1

Sistem file Linux saya memiliki puluhan ribu file per direktori. Melihat daftar semua file membutuhkan beberapa menit untuk dihitung oleh sistem saya, yang terlalu lambat. Tapi saya tidak yakin file apa yang ada di setiap direktori jadi ingin melihat daftar beberapa yang pertama, seperti apa yang dilakukan perintah kepala untuk file besar. Apakah ada perintah yang efisien melakukan ini?

Sunting: Memiping ls ke sesuatu yang lain tidak baik karena ls membutuhkan beberapa menit untuk menyelesaikan, sebelum memiping output. Saya memerlukan perintah yang hanya akan mengembalikan beberapa catatan pertama.

hoju
sumber
Mengapa begitu banyak file dalam direktori?
mouviciel
Apakah itu penting? Bagaimanapun, itu adalah konten web yang diunduh.
hoju

Jawaban:

3

Coba ls -fyang tidak mengurutkan.

PP
sumber
Wow, itu jauh lebih cepat, dan melakukan ls -f | sort | lessjuga jauh lebih cepat! Kegilaan.
BeepDog
0

Untuk masing-masing direktori Anda dapat melakukan hal berikut dengan skrip shell

Coba ini, ini memberikan satu halaman penuh dengan entri

ls | more

Anda bahkan dapat mendorong ini ke beberapa file jika Anda mau sehingga Anda dapat merujuknya nanti, untuk itu gunakan ini

ls | more > filenames.txt

Terima kasih

Mahesh Velaga
sumber
+1 meskipun moredigunakan sesaat sebelum pengalihan
mouviciel
"less is more" - Jika Anda telah lessmenggunakannya, bukanmore
Dennis Williamson
Ada juga "paling" (seseorang memiliki waktu yang sulit penamaan programnya :)
alfplayer
0

Jika Anda ingin daftar N entri pertama, saya hanya akan membuat program C kecil yang melakukan panggilan opendir dan kemudian N panggilan ke readdir


sumber
itu sama dengan kepala daftar file. dan kepala atau ls adalah program C
Saya lebih suka tidak membuat skrip saya sendiri karena saya ingin solusi yang berfungsi pada beberapa mesin, tanpa harus menyalin skrip saya.
hoju
0

Itu tergantung pada sistem file, tetapi biasanya lebih cepat untuk mendaftar hanya nama file (lihat objek direktori) dibandingkan semua metadata file (menyimpan satu stat () per file).

Sudahkah Anda mencoba ls -R?

Kalau tidak, itu mungkin membayar Anda untuk menjalankan program menemukan GNU di latar belakang secara berkala, dan menggunakan DB yang dihasilkan untuk melacaknya.

Nate
sumber
0

Anda bisa menggunakan head:

ls -l | head
Dennis Williamson
sumber