GNU/Linux >> Belajar Linux >  >> Linux

hitung total ruang disk yang digunakan oleh file yang lebih lama dari 180 hari menggunakan find

du tidak akan meringkas jika Anda meneruskan daftar file ke sana.

Sebagai gantinya, kirimkan output ke cut dan biarkan awk jumlahkan. Jadi, Anda dapat mengatakan:

find . -mtime +180 -exec du -ks {} \; | cut -f1 | awk '{total=total+$1}END{print total/1024}'

Perhatikan bahwa opsi -h untuk menampilkan hasil dalam format yang dapat dibaca manusia telah diganti dengan -k yang setara dengan ukuran blok 1K. Hasilnya disajikan dalam MB (lihat total/1024 di atas).


@PeterT benar. Hampir semua jawaban ini memanggil perintah (du) untuk setiap file, yang sangat intensif sumber daya dan lambat serta tidak perlu. Cara termudah dan tercepat adalah ini:

find . -type f -mtime +356 -printf '%s\n' | awk '{total=total+$1}END{print total/1024}'

Mengapa bukan ini?

find /path/to/search/in -type f -mtime +180 -print0 | du -hc --files0-from - | tail -n 1

Linux
  1. Mengapa Find -mtime +1 Hanya Mengembalikan File Lebih Lama dari 2 Hari?

  2. Df Mengatakan Saya Memiliki 20g Lebih Banyak Ruang Disk yang Digunakan Daripada Du. Mengapa??

  3. Cara Menghapus File Lebih Lama dari N hari menggunakan tmreaper di Linux

  1. temukan dan hapus file dengan ruang menggunakan perintah find di Linux

  2. Cara membuat tar untuk file yang lebih lama dari 7 hari menggunakan skrip shell linux

  3. Skrip Bash untuk menghapus file yang lebih lama dari x hari dengan subdirektori

  1. Cara Mengetahui Direktori dan File Teratas (Ruang Disk) di Linux

  2. Bagaimana cara Menghapus semua file yang lebih lama dari X jumlah Hari di Linux?

  3. Menghapus file yang lebih lama dari 30 hari berdasarkan nama file sebagai tanggal