Thursday 11 June 2009

Perintah Pencarian File or Direktori di Linux

Kembali lagi nih kita udah lama juga ngak nulis nih… jadi gatel juga tangan akhirnya nulis juga yah walaupun masih yang simple-simple tapi mudah-mudahan berguna. Kali ini saya akan menjelaskan tentang bagaimana mencari file atau direktori pada sistem kita, kan capek tuh kalo punya hardisk gede trus mau cari file tapi kita lupa taruh file itu dimana, apalagi kalo cuma pake konsole wah ngak kebayang dah capeknya. Kalo diwindows mungkin kita tinggal menggunakan utilitas search di explorer tapi lama juga sih, sekarang kalo di linux gimana ya caranya apalagi kalo kita ngak pake X Windows. Nah untuk mengatasi permasalahan tersebut kita bisa menggunakan GNU findutils yang sangant mudah dan sangant membantu banget. File merupakan hal yang sangat umum dan sangat diperlukan bila kita bekerja dengan komputer baik oleh user maupun administrator. Dan di linux file ini sangat penting karena linux menggunakan file untuk merepresentasikan komponennya dengan sebuah file seperti konfigurasi sebuah aplikasi harddisk, cdrom, mouse dan berbagai device di linux secara sederhana adalah sebuah file yang dapat kita ubah dan konfigurasi sesuai yang kita inginkan maka itulah maka linux disebut opensource. Dan maka dari itu linux memberi kategori untuk file yaitu :

  1. File biasa : Yaitu file umum yang ditemukan pada sistem seperti file kernel, music, gambar, mp3, video, source code program yang sebagian besar adalah file biasa.

  2. Direktori : Merupakan file yang tampak bagi user-user sebagai file yang mengandung file-file yang lain.

  3. Block special file : Merupakan file special dimana transfer data dilakukan perblock contohnya adalah file harddisk, cdrom, floppy dan lain-lain yang biasanya merupakan media penyimpanan.

  4. Character special file : Merupakan file special dimana transfer data dilakukan perkarakter. Contoh filenya adalah mouse.

  5. Symbolic link : Merupakan file yang mengacu kepada file lain. Sekilas mirip dengan shortcut pada Windows, namun memiliki cara kerja yang sunguh berbeda.

  6. Fifo ( first in first out ) : Disebut juga named pipe ( pipa bernama ). File yang dapat menerima ouput dari suatu proses, kemudian menyimpan sementara outputnya, dan kemudian dapat dibuka oleh proses lainnya sebagai input.

  7. Socket : Cara kerjanya mirip dengan fifo, namun socket dapat bekerja lintas komputer.

Karena file merupakan suatu yang special di linux maka file pada suatu sistem linux bisa berjumlah puluhan ribu bahkan bisa sampai ratusan ribu bila banyak aplikasi yang treinstall. Dan dari banyaknya file tersebut bagaimana kah kita bisa mencari file-file tersebut bila kita mempunyai permasalahan seperti berikut. Kita ingin mencari file yang kita lupa letaknya, kita ingin mencari file-file bertipe tertentu yang mungkin berguna bagi administrator seperti file bertipe .conf atau yang lain, kita ingin mencari file-file yang baru saja dimodifikasi dalam dua hari terakhir dan mungkin banyak alasan yang lainnya. Dengan special nya file pada linux maka para hacker mambuat suatu paket pencari dan hasilnya terciptalah GNU findutils.

GNU findutil adalah paket software yang dikembangkan hacker-hacker terkenal seperti David Mackenzie dan Jan Brittenson. Pada paket ini terdapat program find dan xargs yang dua-duanya dapat digunakan untuk melakukan pencarian file baik pencarian dasar maupun advance. Kita musti ngucapin makasih banyak buat orang-orang ini nih karena udah bikin paket software yang canggih kayak gini nih. Paket software ini bisa di download di http://www.gnu.org/software/findutils/ . Program find merupakan program utama pencarian yang punya banyak kebisaaan yang bikin kita tercengang deh kayak :

  1. Mencari file dangan nama tertentu.

  2. Mencari file dengan tipe tertentu.

  3. Mencari file dengan ukuran tertentu.

  4. Memformat keluaran dari pencarian

  5. Mencari file yang dimiliki oleh user.

  6. Melakukan aksi untuk hasil pencarian.

  7. Mencari file dengan hak akses tertentu

  8. Dan banyak yang canggih lainnya..,

Udah ya penjelasan teorinya langsung ama prakteknya aja ya . Ini saya kasih beberapa contoh untuk menggunakan utilitas find pada linux, anda bisa memodifikasinya sesuai dengan kesukaan anda sebdiri atau kegunaannya .

  1. Mendaftar isi direktori

Karena ini permulaan maka kita mulai dengan yang dasar aja dulu okeh. Dengan find kita bisa melihat daftar isi dari sebuah direktori, kenapa ngak pake ls aja kan lebih simple mungkin anda bertanya-tanya. Bila menggunakan ls memang lebih simple dan bisa di format seperti yang kita inginkan tetapi bila menggunakan find kita bisa melihat isi direktori itu secara lengakap sampai dalam-dalamnya lengkap dengan pathnya sekalian ngak percaya coba aja ketik

[root@www ~]# find

dan temukan bedanya.

  1. Mencari file berdasarkan nama

Mungkin ini adalah salah satu yang paling banyak digunakan yaitu mencari file berdasarkan namanya. Pada pencarian ini kita bisa menggunakan character wildcard seperti *. Misalnya kita ingin mencari file yang mengandung angka 1 di dalam filenya:

[root@www ~]# find -name “*1*”

./.opera/toolbar/standard_toolbar (1).ini

./Boot Skins/Y-Boot/3211.jpg

./Boot Skins/XP-Tan Professional/2411.jpg

./Boot Skins/XP Temptress Edition/-tempt~1.boo

./Boot Skins/XP Temptress Edition/2412.jpg

Mudah bukan dan ini adalah contoh dimana kita mencari file dengan dua karakter dimana karakter pertama bebas dan karakter kudanya 1 maka perintahnya akan seperti ini :

[root@www akmal]# find -name “?1″

./.beagle/TextCache/01

./.beagle/TextCache/11

./.beagle/TextCache/21

Nah simple bukan , ini merupakan pencarian yang sering digunakan oleh saya dan mungkin anda juga akan sering menggunakannya. Sekarang bagaimana kalau kita ingin mencari file di suatu folder tertentu, contoh kita akan mencari file pada folder /usr/local/ ayng nama filenya diawali dengan ‘ti’ maka perintahnya seperti ini :

[root@www akmal]# find /usr/local/ -name “ti*”

/usr/local/Zend/ZendStudio-5.5.0/docs/PHPmanual/timezones.others.html

/usr/local/Zend/ZendStudio-5.5.0/docs/PHPmanual/timezones.america.html

/usr/local/Zend/ZendStudio-5.5.0/docs/PHPmanual/timezones.pacific.html

/usr/local/Zend/ZendStudio-5.5.0/docs/PHPmanual/timezones.arctic.html

Oke udah mengerti kan kalau kita ingin mencari file pada direktori tertentu maka argumen pertama yaitu direktori yang akan kita cari maka pencarian akan dilakuakan pada direktori tersebut sampai sub dirktori dibawahnya.

  1. Mencari berdasarkan tipe file tertentu

Program find juga bisa digunakan untuk mencari file berdasarkan tipe tertentu contohnya kita akan mencari direktori-direktori dibawah /usr/local/ maka perintahnya seperti berikut :

[root@www akmal]# find /usr/local/ -type d

/usr/local/

/usr/local/ExecuteQuery

/usr/local/ExecuteQuery/docs

/usr/local/ExecuteQuery/lib

/usr/local/man

/usr/local/man/man8

Dan bila kita ingin tahu berapa jumlah direktori pada /usr/local/ kita tinggal piping perintah tadi ke program wc.

[root@www akmal]# find /usr/local/ -type d | wc -l

450

Seperti yang sudah kita bahas sebelumnya di Linux kita mengenal 7 macam tipe file, jadi yang dimaksudkan tipe file disini bukan ekstensinya tetapi tipe filenya dan kita sudah mengenal satu perintah untuk mencari file bertipe direktori, pada contoh berikut ini kita akan mencari file bertipe block special di direktori /dev/ tetapi yang memiliki nama file diawali dengan hda :

[root@www akmal]# find /dev/ -type b -name “hda*”

/dev/hda6

/dev/hda5

/dev/hda2

/dev/hda1

Pada contoh diatas kita mengkombinasikan argumen type dan name dan berarti anda sudah mengerti cara menggunakan find dengan dua argumen. Untuk notasi tipe-tipe file yang dikenal oleh linux akan dijelaskan seperti berikut:

    1. b untuk block special

    2. c untuk character special

    3. d untuk direktori

    4. p untuk fifo

    5. f untuk regular file

    6. l untuk symbolik link

    7. s untuk socket

  1. Mencari berdasarkan ukuran tertentu

Pencarian ini juga merupakan salah satu yang sering digunakan apalagi oleh seorang administrator untuk mencari file yang kosong atau yang terlalu besar untuk sistem. Pada contoh berikut kita akan mencari file yang berukuran 0 byte :

[root@www akmal]# find -empty

./tmp/ksocket-akmal/artsd-samples

./tmp/orbit-akmal/bonobo-activation-register.lock

./tmp/Vektor.java~

./tmp/Vektor.javz~

./Pictures/web/loading/untitled folder

Keluaran dari perintah diatas adalah file yang berukuran 0 byte (kosong) atau direktori yang kosong ( yang tidak ada file didalamnya ) jadi jangan kaget bila keluarannya terdapat banyak direktori. Contoh berikut adalah pencarian pada folder /home yang ukuran filenya lebih dari 200 KB perintahnya adalah :

[root@www akmal]# find /home/ -size +200k

/home/home/.Trash-0/files/MMxpt.dll

/home/home/.Trash-0/files/Sd242.dll

/home/home/.Trash-0/files/Common Files/InstallShield/Engine/6/Intel 32/IKernel.exe

/home/home/.Trash-0/files/Common Files/InstallShield/IScript/iscript.dll

/home/home/.Trash-0/files/Common Files/Macromedia/2004/SourceControl/RDS.dll

Contoh berikut kita akan mencari file pada folder bin yang berukuran kurang dari 10 KB dan bertipe regular file perintahnya adalah :

[root@www akmal]# find /bin/ -size -10k -type f

/bin/unicode_start

/bin/arch

/bin/igawk

/bin/unicode_stop

/bin/doexec

Nah kita udah bahas file yang kuran dari dan lebih dari sekarang gimana cari file yang ukurannya udah pasti kita tentukan, gampang sekali perintahnya sebagai berikut :

[root@www akmal]# find /bin/ -size 10k -type f

/bin/tracepath

/bin/tracepath6

/bin/mktemp

Kita jangan menggunakan + atau – untuk mencari file dengan ukuran yang sudah pasti. Sekarang bagaimana kalau mencari file yang ukurannya diantara atau dalam range tertentu, tenag jangan pusing dulu perintahnya sebagai berikut :

[root@www akmal]# find /bin/ -size +10k -size -20k

/bin/link

/bin/false

/bin/pwd

/bin/kill

/bin/uname

Gamapang banget ngak sih, ya iya lah masa ya iya dong. Dari tadi kan kita mencari file dengan ukuran Kilobyte gimana mencari file yang satuannya lain, nah ini beberapa contoh argumen yang dapat digunakan :

    1. b untuk blok 512 byte

    2. c untuk byte

    3. w untuk word

    4. k untuk kilobyte (1024)

    5. M untuk mega byte (1048576)

    6. G untuk giga byte ( (1073741824)

Link Distro Linux

http://repo.ugm.ac.id/iso/

http://mirror.unej.ac.id/pub/iso/

http://distrowatch.com/

No comments:

Post a Comment