Perintah “Find” adalah salah satu perintah yang paling penting dan banyak digunakan di sytems Linux. Perintah “Find” digunakan untuk mencari dan menemukan daftar file dan direktori berdasarkan kondisi yang ditentukan oleh user/pengguna. “Find” dapat digunakkan didalam berbagai kondisi seperti mencari file dengan hak akses (permission), pengguna (users), kelompok (groups), tipe data (file types), ukuran (size) dan kriteria lain yang memungkinkan.
Melalui artikel ini saya akan berbagi pengalaman sehar-hari dalam menggunakan perintah “find” dan bentuk-bentuk contoh penggunaanya. Saya telah membagi menjadi 5 pokok bahasan dari dasar ke tingkat lanjut dalam penggunaan perintah “find”.
- Part I: Perintah dasar “Find” untuk menemukan File berdasarkan Nama
- Part II: Pencarian file berdasarkan Hak akses (Permissions)
- Part III: Pencarian file berdasarkan Pemilik/Owners dan Kelompok/Groups
- Part IV: Pencarian file dan direktori berdasarkan waktu dan tanggal
- Part V: Pencarian file dan direktori berdasarkan ukuran (Size)
Part I: Perintah dasar “Find” untuk menemukan File berdasarkan Nama
1. Mencari file menggunakan nama pada direktori saat ini
Cari semua file yang mengandung nama catatan.txt didalam direktori saat ini.
# find . -name catatan.txt ./catatan.txt
2. Mencari file dibawah direktori Home
Mencari semua file dibawah direktori /home dengan nama catatan.txt.
# find /home -name catatan.txt /home/catatan.txt
3. Mencari file berdasarkan nama tanpa memperdulikan huruf Besar dan Kecil
Mencari semua file berdasarkan nama catatan.txt dan mengandung huruf Besar dan Kecil di direktori /home.
# find /home -iname catatan.txt ./catatan.txt ./Catatan.txt ./cAtAtAn.txt
4. Mencari Direktori berdasarkan nama
Mencari semua direktori berdasarkan nama Catatan di direktori “/”.
# find / -type d -name Catatan /Catatan
5. Mencari file PHP berdasarkan Nama
Mencari semua file php yang namanya catatan.php di direktori saat ini.
# find . -type f -name catatan.php ./catatan.php
6. Mencari semua file PHP didalam direktori
mencari semua file php didalam direktori.
# find . -type f -name "*.php" ./catatan.php ./login.php ./index.php
Part II: Pencarian file berdasarkan Hak akses/Perizinan (Permissions)
7. Mencari file dengan Hak Akses/Permission 777
Cari semua file yang perizinannya adalah 777.
# find . -type f -perm 0777 -print
8. Mencari file yang perizinannya/permission bukan 777
Mencari semua file yang perizinannya/permission bukan 777.
# find / -type f ! -perm 777
9. Mencari file SGID dengan perizinan/permission 644
Mencari semua file bit SGID dengan perizinan/permission yang telah di set 644.
# find / -perm 2644
SGID (Set Group ID up on execution) adalah tipe spesial dari perizinan file yang diberikan untuk sebuah file atau folder.
10. Mencari file Sticky Bit dengan perizinan/permission 551
Mencari semua file Sticky Bit yang telah di set perizinananya/permission menjadi 551.
# find / -perm 1551
11. Mencari file SUID
Mencari semua set file SUID.
# find / -perm /u=s
12. Mencari file SGID
Mencari semua set file SGID.
# find / -perm /g=s
13. Mencari file “Read Only”
Mencari semua file “Read Only”.
# find / -perm /u=r
14. Mencari file yang bisa di Execute
Mencari semua file yang bisa di Execute.
# find / -perm /a=x
15. Mencari file dengan perizinan/permission 777 dan diganti ke 644 menggunakan command “chmod”
Mencari semua file dengan perizinan/permission 777 dan menggunakan perintah chmod untuk diganti perizinan/permission nya ke 644.
# find / -type f -perm 0777 -print -exec chmod 644 {} \;
16. Mencari direktori dengan perizinan/permission 777 dan diganti ke 755 menggunakan command “chmod”
Mencari semua direktori dengan perizinan/permission 777 dan menggunakan perintah chmod untuk diganti perizinan/permission nya ke 644.
# find / -type d -perm 777 -print -exec chmod 755 {} \;
17. Mencari dan menghapus file tunggal
Mencari file tunggal dengan nama catatan.txt dan menghapusnya.
# find . -type f -name "catatan.txt" -exec rm -f {} \;
18. Mencari dan menghapus beberapa file
Mencari dan menghapus beberapa file seperti .mp3 or .txt.
# find . -type f -name "*.txt" -exec rm -f {} \; OR # find . -type f -name "*.mp3" -exec rm -f {} \;
19. Mencari semua file kosong
Mencari semua file kosong dengan kondisi tertentu.
# find /tmp -type f -empty
20. Mencari semua direktori kosong
Mencari semua direktori kosong dengan kondisi tertentu.
# find /tmp -type d -empty
21. Mencari semua file yang di sembunyikan
Mencari semua file yang di sembunyikan, gunakan perintah dibawah ini.
# find /tmp -type f -name ".*"
Part III – Search Files Based On Owners and Groups
22. Mencari semua file tunggal berdasarkan Pengguna/User
Untuk mencari semua file tunggal yang bernama catatan.txt dibawah direktori root “/” dengan pengguna sebagai root.
# find / -user root -name catatan.txt
23. Mencari semua file berdasarkan Pengguna/User
Mencari semua file yang di miliki oleh user Catatan dibawah direktori /home.
# find /home -user Catatan
24. Mencari semua file berdasarkan kelompok/Group
Mencari semua file yang di miliki oleh kelompok Developer dibawah direktori /home.
# find /home -group developer
25. Mencari file khusus dari Pengguna/User
Mencari semua file .txt yang dimiliki user Catatan dibawah direktori /home.
# find /home -user Catatan -iname "*.txt"
Part IV – Find Files and Directories Based on Date and Time
26. Mencari file yang telah di modifikasi pada 50 hari terakhir
Mencari semua file yang telah di modifikasi selama 50 hari kebelakang.
# find / -mtime 50
27. Mencari file yang telah di akses pada 50 hari terakhir
Mencari semua file yang diakses pada 50 hari kebelakang.
# find / -atime 50
28. Mencari file yang telah di Modifikasi pada periode 50-100 hari terakhir
Mencari semua file yang telah di modifikasi lebih dari 50 hari kebelakang dan kurang dari 100 hari.
# find / -mtime +50 –mtime -100
29. Mencari file yang telah di Ganti dalam 1 jam terakhir
Mencari semua file yang telah di ganti dalam 1 jam terakhir.
# find / -cmin -60
30. Mencari file yang telah di modifikasi dalam 1 jam terakhir
Mencari semua file yang telah di modifikasi dalam 1 jam terakhir.
# find / -mmin -60
31. Mencari file yang telah di akses dalam 1 jam terkahir
Mencari semua file yang telah di akses dalam 1 jam terakhir.
# find / -amin -60
Part V – Find Files and Directories Based on Size
32. Mencari file yang besarnya 50MB
Mencari semua file yang besarnya 50MB.
# find / -size 50M
33. Mencari file yang ukuranya diantara 50MB – 100MB
Mencari semua file yang lebih besar ukuranya dari 50MB dan lebih kecil dari 100MB.
# find / -size +50M -size -100M
34. Mencari dan mendelete file yang ukurannya 100MB
Mencari semua file yang ukurannya 100MB dan mendelete file tersebut menggunakan satu perintah tunggal (cp).
# find / -size +100M -exec rm -rf {} \;
35. Mencari file spesifik dan mendelete nya
Mencari semua file .mp3 dengan ukuran lebih dari 10MB dan mendelete file tersebut menggunakan satu perintah tunggal (cp).
# find / -type f -name *.mp3 -size +10M -exec rm {} \;
Cukup sekian, Saya mengakhiri postingan saya sampai disini, Pada artikel selanjutnya saya akan mendiskusikan lebih banyak mengenai perintah linux lainnya secara mendalam dengan contoh-contoh praktis. JIka ada pendapat atau saran, mohon komentarnya pada postingan saya kali ini.