Panduan Lengkap Perintah find di Linux

Ikhtisar

Menemukan dan memproses file yang diinginkan secara cepat di lingkungan Linux merupakan keterampilan dasar dan esensial dalam administrasi server maupun pengembangan perangkat lunak. Dalam artikel ini, kita akan mempelajari langkah demi langkah melalui latihan praktis, mulai dari opsi pencarian dasar pada perintah find, pencarian berdasarkan ukuran dan waktu modifikasi file, hingga pemrosesan batch (-exec) terhadap hasil pencarian.

Menyiapkan Lingkungan Praktik dan Pencarian Dasar Berdasarkan Nama File

Jalankan perintah mkdir -p ~/find_lab/docs ~/find_lab/logs ~/find_lab/backup && cd ~/find_lab untuk membuat direktori khusus latihan perintah find dan berpindah ke direktori tersebut.

mkdir -p ~/find_lab/docs ~/find_lab/logs ~/find_lab/backup && cd ~/find_lab

Jalankan perintah touch docs/app.log docs/guide.txt logs/error.log logs/access.log backup/data.bak untuk membuat file sampel dengan berbagai ekstensi yang akan digunakan dalam pengujian pencarian.

touch docs/app.log docs/guide.txt logs/error.log logs/access.log backup/data.bak

Perintah find mencari semua file dan direktori di bawah jalur direktori yang ditentukan secara rekursif sesuai kriteria.
Saat Anda menjalankan perintah find . -name "*.log", sistem akan mencari dan menampilkan semua file yang berakhiran ekstensi .log beserta jalurnya berdasarkan direktori saat ini (.).
Pada saat ini, pola pencarian dibungkus dengan tanda kutip ganda untuk mencegah karakter wildcard (*) diekspansi terlebih dahulu oleh shell.
⚙️ [Opsi Utama]

-name : Mencari item yang cocok dengan nama file atau pola yang ditentukan (peka huruf besar/kecil / case-sensitive).
-iname : Mencari item yang cocok dengan nama file atau pola yang ditentukan tanpa membedakan huruf besar/kecil (case-insensitive).
-type : Menentukan jenis file yang akan dicari (f untuk file biasa, d untuk direktori).
-size : Mencari berdasarkan ukuran file (+ untuk lebih besar dari, - untuk lebih kecil dari).
-mtime : Mencari berdasarkan waktu modifikasi konten file (dalam satuan hari).
-empty : Mencari file kosong atau direktori kosong.
-exec : Menjalankan perintah Linux yang ditentukan secara batch untuk setiap file yang ditemukan.
-delete : Menghapus langsung file-file yang cocok dengan kondisi pencarian.

find . -name “*.log”

Jalankan perintah find . -iname "GUIDE.TXT" menggunakan opsi -iname untuk mencari nama file tanpa membedakan huruf besar dan kecil.
Meskipun nama file aslinya adalah huruf kecil guide.txt, jalur file tetap berhasil ditemukan karena cocok dengan kriteria pencarian tanpa memedulikan kapitalisasi.

find . -iname “GUIDE.TXT”

Menemukan File Berukuran Besar Berdasarkan Tipe dan Ukuran File

Jalankan perintah truncate -s 15M ~/find_lab/backup/large_archive.iso untuk membuat file sampel berukuran besar 15MB guna menguji pencarian berbasis ukuran file.

truncate -s 15M ~/find_lab/backup/large_archive.iso

Jalankan perintah truncate -s 2M ~/find_lab/logs/big_trace.log untuk membuat file sampel log berukuran 2MB sebagai latihan perbandingan ukuran tambahan.

truncate -s 2M ~/find_lab/logs/big_trace.log

Jalankan perintah find ~/find_lab -type d dengan menerapkan opsi -type d untuk memfilter dan mencari jalur direktori saja, tanpa menyertakan file biasa.
Daftar seluruh direktori yang berada di bawah jalur yang ditentukan akan ditampilkan secara rapi.

find ~/find_lab -type d

Jalankan perintah find ~/find_lab -type f -size +10M -exec ls -lh {} + untuk menemukan file biasa (-type f) yang berukuran lebih dari 10MB (-size +10M) sekaligus memeriksa informasi detailnya.
File large_archive.iso berukuran 15MB yang cocok dengan kriteria akan ditemukan dan ditampilkan beserta izin akses dan informasi ukurannya secara mendetail.

find ~/find_lab -type f -size +10M -exec ls -lh {} +

Menemukan File yang Dimodifikasi Berdasarkan Kondisi Waktu (mtime/mmin)

Jalankan perintah touch -d "2 days ago" ~/find_lab/backup/old_backup.tar untuk membuat file sampel masa lalu yang dimodifikasi dua hari lalu guna mempraktikkan pencarian file berdasarkan waktu lampau.

touch -d “2 days ago” ~/find_lab/backup/old_backup.tar

Jalankan perintah touch ~/find_lab/logs/recent.log untuk membuat file sampel dengan stempel waktu saat ini guna menguji pencarian file yang baru saja dimodifikasi.

touch ~/find_lab/logs/recent.log

Jalankan perintah find ~/find_lab -type f -mtime -1 dengan menerapkan opsi -mtime -1 untuk mencari file biasa yang dimodifikasi dalam kurun waktu 24 jam terakhir.
Semua daftar file yang dibuat atau diubah dalam batas waktu acuan (24 jam) akan ditampilkan dengan benar.

find ~/find_lab -type f -mtime -1

Jalankan perintah find ~/find_lab -type f -mtime +1 dengan menerapkan opsi -mtime +1 untuk mencari file lama yang telah dimodifikasi lebih dari 24 jam (1 hari) yang lalu.
Hanya file old_backup.tar yang dibuat dengan tanggal dua hari lalu yang difilter dan ditampilkan dengan tepat.

find ~/find_lab -type f -mtime +1

Kontrol Batch Hasil Pencarian: Opsi -exec dan Proses Penghapusan

Jalankan perintah mkdir -p ~/find_lab/temp && touch ~/find_lab/temp/cache1.tmp ~/find_lab/temp/cache2.tmp untuk membuat direktori sementara dan file-file sementara sebagai bahan latihan kontrol batch dan pengubahan hak akses.

mkdir -p ~/find_lab/temp && touch ~/find_lab/temp/cache1.tmp ~/find_lab/temp/cache2.tmp

Jalankan perintah find ~/find_lab/temp -name "*.tmp" -exec chmod 644 {} \; dengan menerapkan opsi -exec untuk mengubah hak akses semua file berekstensi .tmp yang ditemukan menjadi 644 secara serentak.
Simbol {} digantikan dengan jalur masing-masing file yang ditemukan, dan \; menandai akhir dari perintah yang diteruskan ke klausa -exec.

find ~/find_lab/temp -name “*.tmp” -exec chmod 644 {} ;

Jalankan perintah ls -l ~/find_lab/temp untuk memastikan apakah perubahan izin hak akses telah diterapkan dengan benar.
Dari hasil output, Anda dapat melihat bahwa kedua file sementara tersebut telah berhasil diubah ke izin baca dan tulis (-rw-r--r--, 644).

ls -l ~/find_lab/temp

Jalankan perintah find ~/find_lab/temp -name "*.tmp" -exec rm -f {} \; yang dikombinasikan dengan perintah rm -f untuk menghapus secara massal file .tmp yang cocok dengan kriteria pencarian.
File-file target yang ditemukan akan dihapus sekaligus tanpa proses konfirmasi tambahan.

find ~/find_lab/temp -name “*.tmp” -exec rm -f {} ;

Jalankan perintah ls -la ~/find_lab/temp untuk memeriksa kembali apakah semua file sementara telah berhasil dihapus.
Hasilnya menunjukkan bahwa file sementara yang sebelumnya dibuat telah terhapus seutuhnya, menyisakan direktori saat ini (.) dan direktori induk (..).

ls -la ~/find_lab/temp

Demikian rangkuman singkat mengenai opsi pencarian inti pada perintah find di Linux hingga teknik pemrosesan batch yang dapat langsung diterapkan di dunia kerja.
Cobalah untuk menggabungkan opsi-opsi yang telah dipelajari sesuai dengan kebutuhan Anda agar tugas pencarian dan pengelolaan file menjadi jauh lebih efisien.