Kami memiliki satu set direktori yang berisi indeks lucene. Setiap indeks adalah campuran dari berbagai jenis file (dibedakan berdasarkan ekstensi) misalnya:
0/index/_2z6.frq
0/index/_2z6.fnm
..
1/index/_1sq.frq
1/index/_1sq.fnm
..
(sekitar 10 ekstensi berbeda)
Kami ingin mendapatkan total berdasarkan ekstensi file, misalnya:
.frq 21234
.fnm 34757
..
Saya sudah mencoba berbagai kombinasi du / awk / xargs tetapi merasa sulit untuk melakukan hal ini.
filesystems
shell
disk-space-utilization
lumbung
sumber
sumber
Jawaban:
Untuk ekstensi apa pun yang Anda gunakan
untuk mendapatkan ukuran file total untuk jenis itu.
Dan setelah berpikir
Yang akan menampilkan ukuran dalam byte dari setiap jenis file yang ditemukan.
sumber
-iname
untuk membuat case pencarian extenstion file tidak sensitif.Dengan bash version4, Anda hanya perlu menelepon
find
,ls
danawk
tidak perlu:sumber
read name size
untukread size name
dan-printf "%f\t%s\n"
untuk-printf "%s\t%f\n"
harus memperbaikinya.if [ "$name" == "$ext" ]; then ext="*no_extension*"; fi
setelahext=${name##*.}
jika Anda perlu mencegahnya. Ini akan menempatkan semua file tanpa ekstensi ke dalam*no_extension*
grup (Saya menggunakan*no_extension*
karena*
bukan karakter yang valid dalam nama file)Setiap kolom kedua dipisahkan oleh
.
dan bagian terakhir (ekstensi) disimpan dalam array.maka Anda mendapatkan setiap ukuran total ekstensi dalam byte.
sumber
Memperluas skrip Iain dengan versi yang lebih cepat untuk bekerja dengan sejumlah besar file.
sumber
Ini solusinya:
Solusi yang diposting awalnya di posting ini: Dapatkan semua ekstensi dan jumlah file masing-masing dalam direktori
sumber
Saya memecahkan menggunakan dua perintah ini:
sumber
versi jawaban saya untuk pertanyaan:
sumber
Coba Kepiting ( http://etia.co.uk/ ) - ini adalah utilitas baris perintah yang memungkinkan Anda untuk menanyakan sistem file menggunakan SQL.
sumber