Bagaimana cara menampilkan penggunaan disk berdasarkan jenis file?

9

Pada dasarnya saya bertanya-tanya di mana semua ruang disk saya sedang dimakan di drive saya dan saya ingin dapat menganalisis berdasarkan tipe file

Sebagai contoh, saya ingin menggunakan Terminal untuk melihat seberapa banyak ruang yang digunakan oleh .psdfile di drive saya.

Apakah ada cara untuk melakukan hal seperti itu?

Pete
sumber

Jawaban:

12

Coba ini:

find . -iname '*.psd' -print0 | du -ch --files0-from=-
  • find . -iname '*.psd' menemukan semua file yang diakhiri dengan ekstensi psd
  • -print0 mencetak nama file diikuti oleh karakter nol dan bukan baris baru
  • | du -ch --files0-from=-mengambil nama file dari finddan menghitung penggunaan disk. Opsi memberi tahu du:
    • menghitung penggunaan disk dari nama file yang dipisahkan oleh karakter nol dari stdin ( --files0-from=-),
    • ukuran cetak dalam format yang dapat dibaca manusia ( -h), dan
    • cetak total pada akhirnya ( -c).

Ubah .psdjenis file apa pun yang Anda inginkan untuk menemukan penggunaan disk.

Alaa Ali
sumber
bagaimana cara mengurutkan output berdasarkan ukuran?
ulkas
0

Secara lebih umum, Anda bisa menggunakan kombinasi finddan awkuntuk melaporkan pengelompokan penggunaan disk dengan aturan apa pun yang Anda pilih. Berikut adalah perintah yang dikelompokkan berdasarkan ekstensi file (apa pun yang muncul setelah periode akhir):

# output pairs in the format: `filename size`.
# I used `nawk` because it's faster.
find -type f -printf '%f %s\n' | nawk '
  {
    split($1, a, ".");       # first token is filename
    ext = a[length(a)];      # only take the extension part of the filename
    size = $2;               # second token is file size
    total_size[ext] += size; # sum file sizes by extension
  }
  END {
    # print sums
    for (ext in total_size) {
      print ext, total_size[ext];
    }
  }'

Akan menghasilkan sesuatu seperti

wav 78167606
psd 285955905
txt 13160
Yuval
sumber
-1

Ya kamu bisa. Sintaks untuk mencari file di terminal adalah:

Syntax   :   find foldername -iname '.filetype' -size size 

Example  :   find $HOME -iname '*.mp3' -size +1M

Untuk skenario Anda, itu harus seperti

find $HOME -iname '*.psd' -size +0M

Untuk informasi lebih lanjut, lihat dokumen resmi di sini .

PAC
sumber
Ya tapi ini hanya akan mencetak nama file yang + 0M, itu tidak akan benar-benar memberi tahu saya ukurannya.
Alaa Ali
Ya, saya melihat jawaban Anda sempurna!
PAC