Skip to main content

7. Mencari File dan Direktori


Summary Command​

find
locate

Apa yang akan dipelajari​

  • Dua perintah yang dapat membantu menemukan file dan direktori

Perintah find​

format :

find [path] [expression]
  • Jika kita memasukkan path dan search expression pada perintah find, find akan mencari dan menampilkan hasil yang cocok dengan search expression pada path yang ditentukan.
  • Jika tidak memasukkan argumen pada perintah find, maka semua file akan ditampilkan pada current directory (direktori kerja saat ini) dan semua subdirektori dibawah direktori tersebut.

Opsi find​

-name pattern = Mencari file dan direktori yang cocok dengan pattern yang dimasukkan
-iname pattern = Sama seperti -name, tapi mengabaikan case (huruf besar atau kecil)
-ls = Menjalankan ls -l (long listing format) pada setiap item yang ditemukan
-mtime days = Mencari file berdasarkan waktu (hari)
-size num = Mencari file berdasarkan ukuran file
-newer file_name = Untuk mencari file/directori yang dibuat setelah file lain
-type = Mencari file berdasarkan tipenya
-exec command {} \; = Menjalankan perintah tertentu terhadap semua file yang ditemukan

ex :

find = Mencari semua file di current directory
find . = sama dengan find (. mewakili current directory)
find /usr/local -name My.info
find /usr/local -iname My.info

output :

/usr/local/penulis/my.info
/usr/local/my.info

note : File My.info tidak ditemukan karena file asli bernama my.info, dengan -iname maka case akan diabaikan.

ex :

find . -name "*file*"

note : perintah diatas mencari file yang terdapat kata file pada namanya, tanda ("") karena didalam directory tersebut terdapat nama file yang mengandung spasi (file dengan spasi)

ex :

find . -mtime +5 -mtime -8

note : perintah diatas mencari file yang sudah lebih dari 5 hari dan kurang dari 8 hari

ex :

find . -name s* -ls

note : perintah diatas mencari nama file yang berawalan huruf s lalu menampilkannya dengan long listing format.

ex :

find . -size +1M

note : perintah diatas mencari file yang mempunyai ukuran 1MB atau lebih. Bisa juga denga KB(K), GB(G)

ex :

find . -type d -newer setup.sh

note : Perintah diatas mencari semua directory yang lebih baru dari file setup.sh

ex :

find . -name "*file*" -exec tail -1 {} \;

note : perintah diatas mencari file yang mengandung kata file, kemudian menjalankan perintah tail -1 ke semua file yang ditemukan.

Perintah locate​

format :

locate pattern
  • Menampilkan file yang cocok dengan search pattern (sama seperti perintah find)
  • Lebih cepat dibandingkan perintah find
  • Perintah locate bekerja dari indeks, biasanya indeks di rebuild setiap hari
  • Hasilnya tidak realtime, ada jeda antara waktu indeks akan dibuat dan waktu kita menjalankan perintah locate
  • Jadi jika kita mencari file yang dibuat hanya beberapa menit yang lalu, kemungkinan file tersebut tidak berada di indeks. Satu satunya cara untuk menemukan file tersebut adalah menggunakan perintah find yang mengevaluasi file dan direktori secara realtime.
  • Pada beberapa sistem, perintah locate tidak diaktifkan secara default

ex :

locate sshd_config

note : perintah diatas menampilkan nama file yang mengandung kata sshd_config

ex :

locate firstd
touch firstdir/ini-file-baru
locate firstd
locate ini-file-baru
find . -name ini-file-baru

note : perintah diatas menampilkan nama file (direktori) yang mengandung kata firstd. Kemudian didalam direktori firstdir dibuat file baru bernama ini-file-baru. Pada saat locate firstd, file baru tadi tidak ditemukan. Begitu juga dengan perintah locate ini-file-baru, hasilnya tidak ditemukan. Terakhir dengan perintah find, file ini-file-baru berhasil ditemukan.