Saya memiliki ratusan file pdf dan file html di direktori. Dan saya ingin tahu ukuran total file pdf.
Dengan perintah du -ch /var/foo
saya dapat melihat ukuran file total tetapi saya hanya perlu baris terakhir, ukuran total.
Jika direktori hanya berisi file pdf saya dapat menggunakan -s
opsi, tetapi opsi ini tidak dapat digunakan saat ini.
Bagaimana saya bisa mendapatkan hanya ukuran total jenis file tertentu?
shell
wildcards
disk-usage
pasir besi
sumber
sumber
du -sh /foo/*.pdf
?du -ch /var/foo/*.pdf | tail -n 1
Jawaban:
Dengan GNU
du
(yaitu pada Linux yang tidak tertanam atau Cygwin), Anda dapat menggunakan--exclude
opsi untuk mengecualikan file yang tidak ingin Anda cocokkan.Jika Anda ingin mencocokkan
*.pdf
file secara positif , Anda harus menggunakan beberapa metode lain untuk membuat daftar file, dandu
setidaknya akan menampilkan satu baris output per argumen, ditambah total besar dengan opsi-c
. Anda dapat menelepontail
untuk menghapus semua kecuali baris terakhir, atau sed untuk menghapus kata "total" juga. Untuk menghitung file dalam satu direktori itu, gunakan wildcard di shell.Jika Anda perlu menelusuri file dalam subdirektori juga, gunakan
find
, atau gunakan**/
pola jika shell Anda mendukungnya. Untuk**/
, dalam bash, jalankan pertamashopt -s extglob
, dan perhatikan bahwa versi bash hingga 4.2 akan melintasi tautan simbolik ke direktori; di zsh, ini berfungsi di luar kotak.Komplikasi tambahan dengan versi find adalah bahwa jika ada terlalu banyak file,
find
akan berjalandu
lebih dari sekali, untuk tetap di bawah batas panjang baris perintah. Dengan metode wildcard, Anda akan mendapatkan kesalahan jika itu terjadi ("batas panjang baris perintah terlampaui"). Kode berikut mengasumsikan bahwa Anda tidak memiliki nama file yang cocok yang berisi baris baru.sumber
--exclude='*.html'
akan menyebabkan/var/foo/dir.html/foo.pdf
tidak dihitung karena pengecualian juga mempengaruhi traversal direktori; juga, penggunaan disk dari direktori termasuk/var/foo
dirinya akan diperhitungkan)Anda dapat membiarkan shell membuka file:
Namun seperti yang Anda lihat ini menunjukkan filesizes sekitar 1000 kali seperti yang baru saja dibuat. Opsi yang lebih baik menggunakan
-b
opsi ini:File ukuran besar masih akan ditampilkan dalam bentuk yang dapat dibaca manusia — mis
173K
.sumber
du
menunjukkan penggunaan disk setiap file (pada kebanyakan sistem file, itu ukuran file dibulatkan ke kelipatan berikutnya dari ukuran blok). Dengan opsi-b
,du
menunjukkan ukuran setiap file.