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).