type
opsi untuk memfilter hasil
find
menerima type
opsi untuk memilih, misalnya, hanya file.
find /path/to/files -type f -mtime +10 -delete
Abaikan -delete
untuk menunjukkan apa yang akan dihapus, dan setelah Anda memverifikasinya, lanjutkan dan jalankan perintah lengkap.
Itu hanya akan berjalan di file, bukan direktori. Gunakan -type d
sebaliknya, hanya cantumkan direktori yang cocok dengan argumen Anda.
Opsi tambahan
Anda mungkin ingin membaca man find
, karena ada beberapa opsi lagi yang mungkin Anda perlukan di masa mendatang. Misalnya, -maxdepth
akan memungkinkan Anda untuk hanya membatasi item yang ditemukan ke kedalaman tertentu, mis. -maxdepth 0
tidak akan berulang ke subdirektori.
Beberapa komentar
-
Saya bertanya-tanya bagaimana perintah itu akan menghapus folder, karena Anda tidak dapat menghapus folder dengan
rm
hanya. Anda membutuhkanrm -r
untuk itu. -
Juga,
/path/to/files*
membingungkan. Apakah maksud Anda/path/to/files/
atau apakah Anda mengharapkan karakter pengganti diperluas ke beberapa nama file dan folder? -
Masukkan
{}
dalam tanda kutip tunggal, yaitu'{}'
untuk menghindari nama file/direktori yang diganti ditafsirkan oleh shell, sama seperti kita melindungi titik koma dengan garis miring terbalik.
Seperti pada jawaban sebelumnya (+1 untuk keduanya) triknya adalah menggunakan -type f
predikat.
Perhatikan, bahwa alih-alih -exec rm '{}'
Anda juga dapat menggunakan -delete
predikat. Tapi jangan lakukan itu. Dengan -exec rm '{}'
Anda dapat (dan harus) terlebih dahulu melakukan -exec echo rm '{}'
untuk memverifikasi bahwa ini benar-benar yang Anda inginkan. Setelah itu jalankan kembali perintah tanpa echo
.
Menggunakan -delete
lebih cepat (tanpa tambahan fork()
dan execve()
untuk setiap file), tetapi ini berisiko karena -delete
berfungsi juga sebagai syarat, jadi:
# delete *.tmp files
find . -type f -name '*.tmp' -delete
tetapi jika Anda HANYA menukar argumen:
# delete ALL files
find . -type f -name '*.tmp' -delete
Jika Anda membutuhkan find
dan rm
untuk bekerja lebih cepat untuk banyak file, lihat find ... | xargs ... rm
Idiom UNIX.