Saya mencari satu-liner berguna untuk menghitung ukuran file rata-rata dalam direktori.
Yang saya inginkan adalah:
ukuran semua file / jumlah file dalam direktori
bash
command-line
taffer
sumber
sumber
Jawaban:
Dengan FreeBSD / Mac OS X
find
,stat
danawk
(meskipun bukan one-liner yang praktis):sumber
-v var=value
,awk
akan memperluas urutan ANSI C sebagai\n
,\r
... Sementara kerang melakukan eksporPWD
, sehingga Anda dapat menggunakanENVIRON["PWD"]
diawk
mana tidak memiliki jenis masalah bagi direktori memiliki backslashes di nama mereka.find . -type f -exec stat -f%z {} +|awk '{s+=$0}END{print s/NR}'
.Dengan GNU temukan:
Atau untuk penggunaan disk:
Perhatikan bahwa jika ada beberapa hardlink dari file yang sama di sana, itu akan menghitung penggunaan disk-nya beberapa kali.
Di atas hanya menghitung file biasa, bukan symlinks atau direktori atau file khusus lainnya. Ini termasuk file tersembunyi.
Sama dengan
zsh
builtin:sumber
Solusi sederhana dalam satu baris:
Ini memiliki cheat sintaksis di dalamnya, hanya mempertimbangkan
ls
jalur output yang dimulai dengan '-', yang seharusnya merupakan data untuk file biasa.sumber
hanya file dalam direktori, abaikan sub direktori:
Atau untuk menghitung semua file termasuk file dalam subdirektori:
sumber
du -s
akan menambah penggunaan disk (bukan ukuran) dari semua file dan direktori serta file non-reguler lainnya , tidak termasuk tautan ekstra keras ke file yang sama, sementarafind
akan menghitung semua file biasa. Juga, nama file dengan karakter baris baru akan dihitung beberapa kali.du -S
khusus untuk GNU.du -s
akan melaporkan sektor atau kilobyte tergantung pada OS.