GNU/Linux >> Belajar Linux >  >> Linux

Jumlah file di setiap sub-direktori

Dengan asumsi Anda hanya menginginkan jumlah file rekursif, bukan direktori dan jenis lainnya, hal seperti ini seharusnya berfungsi:

find . -maxdepth 1 -mindepth 1 -type d | while read dir; do
  printf "%-25.25s : " "$dir"
  find "$dir" -type f | wc -l
done

Tugas ini sangat memesona saya sehingga saya ingin mencari solusinya sendiri. Bahkan tidak perlu beberapa saat dan MEI menjadi lebih cepat dalam kecepatan eksekusi. Tak perlu dikatakan lagi, upaya Thor banyak membantu saya untuk memahami berbagai hal secara mendetail.

Jadi ini punya saya:

find . -maxdepth 1 -mindepth 1 -type d -exec sh -c 'echo "{} : $(find "{}" -type f | wc -l)" file\(s\)' \;

Itu terlihat sederhana karena suatu alasan, karena jauh lebih kuat daripada yang terlihat. :-)

Namun, jika Anda ingin memasukkan ini ke dalam .bash_aliases Anda file, itu harus terlihat seperti ini:

alias somealias='find . -maxdepth 1 -mindepth 1 -type d -exec sh -c '\''echo "{} : $(find "{}" -type f | wc -l)" file\(s\)'\'' \;'

Perhatikan penanganan yang sangat rumit dari single bersarang kutipan. Dan tidak, itu tidak mungkin untuk menggunakan tanda kutip ganda untuk sh -c argumen.


find . -type f | cut -d"/" -f2 | uniq -c

Mencantumkan folder dan file di folder saat ini dengan jumlah file yang ditemukan di bawahnya. IMO cepat dan berguna. (file ditampilkan dengan hitungan 1).


Linux
  1. Temukan File Duplikat?

  2. Temukan Kecualikan Direktori?

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

  1. Temukan File Terbesar Secara Rekursif?

  2. Temukan dan salin file

  3. Cara gzip semua file di semua sub-direktori di bash

  1. Temukan File Terbaru?

  2. Gunakan wc pada semua subdirektori untuk menghitung jumlah baris

  3. Bagaimana cara menghitung jumlah baris file yang ditemukan?