GNU/Linux >> Belajar Linux >  >> Linux

Hitung Jumlah File dalam Direktori di Linux

Saya kira Anda mengetahui perintah wc untuk menghitung jumlah baris. Kita dapat menggunakan perintah wc yang sama dengan perintah ls untuk menghitung jumlah file dalam sebuah direktori.

Tugas ini tampaknya sederhana tetapi dapat segera menjadi sedikit rumit berdasarkan kebutuhan dan definisi Anda tentang menghitung file. Sebelum saya membingungkan Anda lebih jauh, mari kita lihat tentang berbagai kasus penggunaan penghitungan jumlah file di Linux.

Menghitung jumlah file dalam direktori di Linux

Mari saya tunjukkan konten direktori pengujian yang akan saya gunakan dalam tutorial ini:

[email protected]:~/tutorials$ ls -la
total 64
drwxr-xr-x 4 abhishek abhishek 4096 Apr 29 17:53 .
drwxr-xr-x 55 abhishek abhishek 4096 Apr 29 15:50 ..
-rwxr–r– 1 abhishek abhishek 456 Mar 6 16:21 agatha.txt
-rw-r–r– 1 abhishek abhishek 0 Apr 16 19:53 .a.t
-rwxr–r– 1 abhishek abhishek 140 Mar 22 16:41 bash_script.sh
-rw-rw-r– 1 abhishek abhishek 95 Feb 11 13:12 cpluplus.cpp
-rw-r–r– 1 abhishek abhishek 1778 Apr 29 16:16 my_zip_folder.zip
drwxr-xr-x 4 abhishek abhishek 4096 Apr 19 19:07 newdir
-rw-r–r– 1 abhishek abhishek 163 Apr 13 15:07 prog.py
-rw-r–r– 1 abhishek abhishek 19183 Mar 18 18:46 services
-rw-r–r– 1 abhishek abhishek 356 Dec 11 21:35 sherlock.txt
-rwxrw-r– 1 abhishek abhishek 72 Jan 21 15:44 sleep.sh
drwxr-xr-x 3 abhishek abhishek 4096 Jan 4 20:10 target

Anda dapat melihat bahwa ia memiliki 9 file (termasuk satu file tersembunyi) dan 2 sub-direktori di direktori itu. Tetapi Anda tidak harus melakukannya secara manual. Mari kita hitung jumlah file menggunakan perintah Linux.

Hitung jumlah file dan direktori (tanpa file tersembunyi)

Anda cukup menjalankan kombinasi perintah ls dan wc dan itu akan menampilkan jumlah file:

ls | wc -l

Ini adalah outputnya:

[email protected]:~/tutorials$ ls | wc -l
10

Ada masalah dengan perintah ini. Ini menghitung semua file dan direktori di direktori saat ini. Tetapi tidak melihat file yang disembunyikan (file yang namanya dimulai dengan titik).

Inilah alasan mengapa perintah di atas menunjukkan kepada saya hitungan 10 file, bukan 11 (9 file dan 2 direktori).

Hitung jumlah file dan direktori termasuk file tersembunyi

Anda mungkin sudah tahu bahwa opsi -a dari perintah ls menunjukkan file yang tersembunyi. Tetapi jika Anda menggunakan perintah ls -a, itu juga menampilkan file . (direktori sekarang) dan .. (direktori induk). Inilah sebabnya mengapa Anda perlu menggunakan opsi -A yang menampilkan file tersembunyi tidak termasuk . dan .. direktori.

ls -A | wc -l

Ini akan memberi Anda jumlah file dan direktori yang benar di direktori saat ini. Lihat output yang menunjukkan hitungan 11 (9 file dan 2 direktori):

[email protected]:~/tutorials$ ls -A | wc -l
11

Anda juga dapat menggunakan perintah ini untuk mencapai hasil yang sama:

ls -1A | wc -l

Perhatikan bahwa opsi yang digunakan adalah 1 (satu) bukan l (L). Menggunakan opsi l (L) menampilkan baris tambahan di awal output (lihat 'total 64' di output direktori di awal artikel). Menggunakan 1 (satu) daftar satu konten per baris tidak termasuk baris tambahan. Ini memberikan hasil yang lebih akurat.

Hitung jumlah file dan direktori termasuk subdirektori

Apa yang Anda lihat sejauh ini adalah jumlah file dan direktori di direktori saat ini saja. Itu tidak memperhitungkan file di subdirektori.

Jika Anda ingin menghitung jumlah file dan direktori di semua subdirektori, Anda dapat menggunakan perintah pohon.

tree -a

Perintah ini menunjukkan struktur direktori dan kemudian menampilkan ringkasan di bagian bawah output.

[email protected]:~/tutorials$ tree -a
.
├── agatha.txt
├── .a.t
├── bash_script.sh
├── cpluplus.cpp
├── my_zip_folder.zip
├── newdir
│   ├── new_dir
│   │   ├── c.xyz
│   │   ├── myzip1.zip
│   │   └── myzip2.zip
│   └── test_dir
│   ├── c.xyz
│   ├── myzip1.zip
│   └── myzip2.zip
├── prog.py
├── services
├── sherlock.txt
├── sleep.sh
└── target
├── agatha.txt
├── file1.txt
└── past
├── file1.txt
├── file2.txt
└── source1
└── source2
└── file1.txt
7 directories, 19 files

Seperti yang Anda lihat di output, ini menunjukkan bahwa ada 7 direktori dan total 20 file. Hal yang baik tentang hasil ini adalah tidak menghitung direktori dalam jumlah file.

Hitung hanya file, bukan direktori

Sejauh ini, semua solusi yang telah kita lihat untuk menghitung jumlah file, juga memperhitungkan direktori. Direktori pada dasarnya adalah file tetapi bagaimana jika Anda hanya ingin menghitung jumlah file, bukan direktori? Anda dapat menggunakan perintah find yang luar biasa.

Anda dapat menjalankan perintah ini:

find . -type f | wc -l

Perintah di atas mencari semua file (ketik f) di direktori saat ini dan subdirektorinya.

[email protected]:~/tutorials$ find . -type f | wc -l
20

Hitung hanya file, bukan direktori dan hanya di direktori saat ini, bukan subdirektori

Itu keren! Tetapi bagaimana jika Anda ingin menghitung jumlah file di direktori saat ini hanya dengan mengecualikan file di subdirektori? Anda dapat menggunakan perintah yang sama seperti di atas tetapi dengan sedikit perbedaan.

Yang harus Anda lakukan adalah menambahkan 'kedalaman' temuan Anda. Jika Anda menyetelnya pada 1, itu tidak akan masuk ke subdirektori.

find . -maxdepth 1 -type f | wc -l

Inilah hasilnya sekarang:

[email protected]:~/tutorials$ find . -maxdepth 1 -type f | wc -l
9

Pada akhirnya…

Di Linux, Anda dapat memiliki banyak cara untuk mencapai tujuan yang sama. Saya cukup yakin ada beberapa metode lain untuk menghitung jumlah file di Linux. Jika Anda menggunakan perintah lain, mengapa tidak membagikannya dengan kami?

Saya harap tutorial Linux ini membantu Anda mempelajari beberapa hal. Tetap terhubung untuk mendapatkan tips Linux lainnya.


Linux
  1. Bagaimana Menghitung Jumlah File Dalam Sebuah Direktori Dan Menghapus Yang Terlama Jika Jumlahnya Melebihi 5?

  2. Hitung baris semua file di direktori Ubuntu

  3. Menghitung file secara rekursif dalam direktori Linux

  1. Cara Meningkatkan Jumlah Batas File Terbuka di Linux

  2. Cara Menghitung Jumlah File dan Subdirektori di dalam Direktori yang Diberikan

  3. perintah linux tree membatasi jumlah file yang ditampilkan di setiap direktori

  1. Apa Cara Terbaik Untuk Menghitung Jumlah File Dalam Direktori?

  2. Jumlah maksimum file/direktori di Linux?

  3. Bagaimana cara menghitung jumlah file di setiap direktori?