File lebih besar dari 1 GB dan lebih dari 6 bulan

20

Saya ingin mencari file yang lebih besar dari 1 GB dan lebih dari 6 bulan di seluruh server. Bagaimana cara menulis perintah untuk ini?

Shinek
sumber

Jawaban:

37

Gunakan find:

find /path -mtime +180 -size +1G

-mtimeberarti mencari waktu modifikasi yang lebih besar dari 180 hari (+180). Dan -sizeparameter mencari file yang lebih besar dari 1GB.

kekacauan
sumber
2
Perhatikan bahwa dalam findimplementasi di mana Gsufiks itu didukung, itu berarti GiB (1073741824 bytes), bukan GB (1000000000). find /path -mtime +180 -size +1073741824c
Mudah-mudahan
1
jika Anda ingin menghindari melihat kesalahan di antara daftar file seperti ini: find: a.txt :Permission deniedSaya sarankan menambahkan ini 2>/dev/nullterinspirasi dari komentar ini: unix.stackexchange.com/questions/42841/…
gmansour
Anda juga dapat menyalurkan hasilnya ke dalam xargs ls -lhSmengurutkannya berdasarkan ukuran: find /path -mtime +180 -size +1G | xargs ls -lhS
user553965
@ user553965 Perintah Anda tidak akan berfungsi. Apa yang sebenarnya dibutuhkan untuk mengurutkan berdasarkan ukuran: find / -size +1G -mtime +180 -print0 2>/dev/null | xargs -0 ls -lhS. Catatan pemula: Pengalihan 2>/dev/nullsaja menghilangkan permission deniedkesalahan yang pasti akan muncul saat mencari dari root. Untuk mengurutkan berdasarkan terakhir diubah menggunakan tanggal ls -lhtbukan dan menambahkan rke lsperintah, misalnya ls -lhSr, akan membalikkan hasil (terkecil hingga terbesar / terlama ke terbaru).
mattst
6

find / -size +1G -mtime +180 -type f -print

Berikut penjelasan opsi perintah berdasarkan opsi: Mulai dari direktori root, ia menemukan semua file lebih besar dari 1 Gb, dimodifikasi lebih dari 180 hari yang lalu, yang bertipe "file", dan mencetak path mereka.

dr01
sumber