Contoh Dasar-Dasar Penggunaan Find Di GNU/Linux


Ketika komputer sudah lama dan dipenuhi oleh berkas-berkas, pada waktu tertentu kita ingin mengakses berkas tersebut lalu lupa. Dikarenakan sudah lama tidak dilihat, wajar saja demikian. Saya sendiri pun juga pernah mengalami hal itu. Di samping itu, saya hanya mengingat kata kuncinya saja. Jika Anda mengalami hal yang sama, artinya kita butuh semacam aplikasi pencarian berkas.

Setiap sistem operasi yang dilengkapi oleh penyimpanan berkas pasti memiliki fitur pencarian. Pencarian berkas umumnya sudah terintegrasi dari file manager seperti Windows Explorer pada Windows dan Finder pada macOS. Lalu bagaimana dengan GNU/Linux? Sama dengan OS lainnya GNU/Linux juga pada file manager-nya juga terintegrasi dengan fitur pencarian contohnya pada Nautilus.

Pengguna GNU/Linux selalu lekat dengan console atau terminal. Meski sudah banyak GUI, tetap saja perintah pada console atau terminal wajib kita ketahui. Nah, berikut ini saya akan memberikan contoh-contoh pencarian suatu berkas tanpa menggunakan aplikasi GUI, yakni cukup menggunakan aplikasi bawaah yakni find.

Seperti yang diketahui, hampir seluruh distribusi GNU/Linux pasti menyertakan find oleh karena itu, tutorial ini bisa kita pakai pada distribusi GNU/Linux manapun, karena perintahnya semuanya sama.

Oke, Langsung saja berikut ini contohnya:

Mencari Dalam Directory.

Pada saat menggunakan perintah find saja, ia secara otomatis akan menunjukan semua berkas yang berada sesuai dengan direktori di mana Anda berada (current directory) disertai dengan subdirektori di dalamnya dalam bentuk list.

$ find

Kalau kita ingin spesifik pada direktori tertentu tinggal tambahkan saja nama direktorinya contohnya

$ find /tmp

Secara asali, semua perintah find akan selalu mencari berkas pada direktori berserta subdirektori yang berada di dalamnya. Bagaimana jika kita tidak ingin menyertakan subdirektori pada saat mencari berkas? Cukup tambahkan perintah -maxdepth 1.

Berikut ini contoh perintahnya:

$ find /tmp -maxdepth 1

Pada saat pencarian, pastikan yang ingin kita cari sesuaikan dengan permission-nya. Jika kita ingin mencari seluruh berkas dari root / , gunakan perintah sudo.

$ sudo find /

Mencari Hanya Direktori atau Berkas Saja

Sederhananya perintah find akan selalu menampilkan semua berkas dan direktori. Jika kita ingin mencari hanya direktori saja, cukup gunakan perintah -type d.

$ find . -type d

Sedangkan kalau untuk berkas (file) saja ganti menjadi -type f.

$ find . -type f

Spesifik dari Nama

Kalau perintah find saja atau find /nama_direktori ia hanya akan menampilkan seluruh berkas, untuk mencari berkas berdasarkan suatu nama tertentu kita bisa tambahkan dengan perintah -name "nama_yg_ingin_dicari". Contohnya:

$ find ~ -name "situsali.jpg"

Kita pun dapat mencari berkas berdasarkan ekstensinya. Contoh:

$ find ~ -name "*.jpg"

Atau mencari yang lebih spesifik lagi misalnya berkas yang diawali huruf a dengan ekstensi .jpg.

$ find ~ -name "a*.jpg"

Perlu diketahui perintah -name hanya akan mencari berdasarkan karakternya atau case-sensitive, dengan kata lain, jika kita mencari berkas yang berawalan huruf a maka A (dengan kapital) tidak akan ditampilkan. Oleh karena itu, untuk pencarian berkas tanpa spesifik huruf kapital atau kecil, kita bisa menggunakan perintah -iname. Contohnya:

$ find ~ -iname "a*jpg"

Sesuai Kondisi OR, AND atau NOT

Kalau tadi kita mencari berdasarkan spesifik dari suatu nama, sekarang disesuaikan dengan kondisinya. Maksudnya begini, contoh ketika kita ingin mencari berkas yang hanya berekstensi .jpg, .txt, .png, dan .mp3 kita bisa menggunakan perintah -o yang berarti OR.

$ find . -name "*.jpg" -o -name "*.txt" -o -name "*.png" -o -name "*.mp3"

Perintah -o bisa kita gunakan sebanyak-banyaknya disesuaikan dengan kondisi yang kita inginkan.

Kalau ingin mencari berdasarkan dua kriteria bisa gunakan AND yakni dengan perintah -a. Contohnya kita hanya ingin mencari berkas, yang berawalan huruf S baik kapital atau bukan dan mengandung kata ali.

$ find ~/Pictures/ -iname "s*" -a -name "*ali*"

Perintah -a juga bisa kita gunakan sebanyak-banyaknya disesuaikan dengan kondisi yang kita inginkan.

Kemudian kalau ingin mencari semua berkas kecuali berkas tertentu, gunakan perintah -not. Contohnya, kita ingin mencari seluruh berkas kecuali yang berekstensi .jpg.

$ find . -not -name "*.jpg"

Penggunaan -not sama halnya dengan -o atau -a dapat kita gunakan sebanyak-banyaknya. Contoh ingin mengecualikan 3 ekstensi.

$ find . -not -name "*.jpg" -not -name "*.txt" -not -name "*.png"

Berdasarkan Permission-nya

Untuk mencari berkas berdasarkan permission yang ia gunakan kita bisa menggunakan perintah berikut:

$ find . -perm 0644

Atau berdasarkan penamaan UGO (User, Group, Other). Contohnya, kita ingin mencari berdasarkan permission rw pada user:

$ find . -perm u=rw,g=r,o=r

Kita bisa tambahkan / yang artinya likely, contohnya:

$ find . -perm /u=rw

Atau berkas yang memiliki special permission seperti SGID:

$ find . -perm /u=s

Berdasarkan User atau Group Tertentu

Perintah di atas kita hanya mengetahui berdasarkan permissionnya saja tanpa peduli dari user atau grup mana. Jika ingin lebih menspesifikasikan lagi berdasarkan pada user atau group terntu kita bisa gunakan perintah:

$ find . -user situsali

Berdasarkan group:

$ find . -group users

Berdasarkan File Size

Perintah sederhana berdasarkan ukuran besarnya suatu berkas (file size) kita bisa menggunakan perintah -size Contohnya:

$ find . -size -10M

Perhatikan perintah di atas -10M artinya berkas yang berukuran kurang dari 10 Megabyte. Jika ingin lebih dari 10 Megabyte ganti dengan +10M.

Keterangan lebih lanjut bisa Anda lihat dari man find.

Perhatian jika kita ingin mencari berkas yang berukuran kurang dari 1M, kita tidak bisa menggunakan perintah -1M. Cukup tulis 1M saja atau -not -size +1M.

$ find . -size 1M

Atau

$ find . -not -size +1M

Perintah -size ini juga bisa kita gunakan dengan dua buah kriteria. Contoh kita ingin mencari berkas yang berukuran lebih dari 2 Megabyte dan kurang dari 10 Megabyte.

$ find . -size +2M -size -10M

Berdasarkan Access dan Modify

Mungkin kita hanya mengingat bahwa berkas pernah diakses pada 7 hari yang lalu.

$ find ~ -atime 7

Atau pernah dimodifikasi pada 8 hari yang lalu.

$ find ~ -mtime 8

Mencari Berkas atau Direktori yang Kosong

Untuk berkas kosong

$ find . -type f -empty

Sedangkan direktory kosong

$ find . -type d -empty

Oke itu saja dulu perintah dasar-dasar penggunaan find untuk mencari berkas. Artikel selanjutnya kita akan membahas mengenai find yang dikombinasikan dengan perintah lain juga kombinasi dengan regex (regular expression).