Perintah Find Di Linux

Oke sekarang saya akan membahas tentang penggunaan perintah find pada Linux. Perintah find ini akan sangat berguna sekali apabila kita ingin mencari sesuatu file di dalam direktori Linux kita.. Dan sekarang saya akan mencoba membagikan beberapa cara penggunaan perintah find ini dalam beberapa kelompok.
  1. Mencari file dalam direktori yang sama.
    aim@aim-tian:~$ find -name “gapps*”
    ./gapps-jb-20120726-signed.zip
    ./gapps-ics-20120429-signed.zip

    Lihat disana saya memanfaatkan simbol asterik, yang berarti saya mencari file dengan nama gapps diikuti sembarang karakter dibelakangnya.

  2. Lalu mencari file tertentu dengan fitur case sensitif yang dinonaktifkan.
    aim@aim-tian:~$ find -iname “gapps*”
    ./Gapps-gb-20110828-signed.zip
    ./gapps-jb-20120726-signed.zip
    ./gapps-ics-20120429-signed.zip

  3. Mencari file pada direktori yang ingin ditentukan.
    aim@aim-tian:~$ find /mnt/Data/ -name linux*
    /mnt/Data/web/cara-konfigurasi-printer-di-slackware_files/linux-counter.png
    /mnt/Data/web/how-to-disable-a-service-from-startup-in-ubuntu_files/click_data/linuxask.gif
    /mnt/Data/web/how-to-disable-a-service-from-startup-in-ubuntu_files/linux-ask-logo-4.png
    /mnt/Data/linux-3.8.5.tar.xz
    /mnt/Data/Android/adt-bundle-linux-x86/eclipse/configuration/org.eclipse.osgi/bundles/75/2/.cp/os/linux
    /mnt/Data/OS/linuxmint-14.1-mate-dvd-32bit.iso
    /mnt/Data/linux-3.9.3.tar.xz

  4. Mencari file sekaligus mendapatkan nilai md5nya.
    aim@aim-tian:~$ find /mnt/Data/ -name linux-3.9.3.tar.xz -exec md5sum {} \;
    266e58f4e2f68f48b906ae109aba4dea /mnt/Data/linux-3.9.3.tar.xz

  5. Mencari file selain file yang telah ditentukan.
    //sebelum perintah find
    aim@aim-tian:~$ ls Pictures/Wallpapers/
    Clean_Desktop1024_768-vert.jpg
    //sesudah perintah find
    aim@aim-tian:~$ find Pictures/Wallpapers/ -not -name “Clean*”
    Pictures/Wallpapers/

    Lihat tampilan di atas kita mencari file yang tidak ada nama Cleannya, dan alhasil hasilnya pun kosong karena dalam direktori Wallpapers hanya ada satu file dan file itu bernama Clean.

  6. Mencari file dengan tingkat kedalaman foldernya.
    Misal saya ingin mencari file selain file Linux di dalam folder /mnt/Data dengan kedalaman levelnya hanya 1 tingkat saja. Jadi nanti hasilnya akan seperti ini /mnt/Data/blablalba.
    aim@aim-tian:~$ find /mnt/Data/ -maxdepth 1 -not -iname “linux*”
    /mnt/Data/
    /mnt/Data/Walpaper
    /mnt/Data/Documents
    /mnt/Data/Music
    /mnt/Data/.Trash-1000
    /mnt/Data/belajar
    /mnt/Data/Graphics

    Nah coba perintah -maxdepth di atas ganti menjadi 2, maka kedalaman direktorinya pun akan menjadi seperti ini /mnt/Data/blabla/blabla

  7. Mencari file berdasarkan inode number. Inode number disini maksudnya adalah mencari file dengan nama yang mirip tetapi meiliki nomor inode yang berbeda. Untuk lebih jelasnya perhatikan perintah dibawah ini:
    //membuat file dengan nama sama
    aim@aim-tian:~$ touch “jajal”
    aim@aim-tian:~$ touch “jajal ”

    Lalu perhatikanlah hasil dari perintah “ls” ini, hasilnya ada dua buah file yang sama percis.

    aim@aim-tian:~$ ls jajal*
    jajal
    jajal

    Nah apabila kita menambahkan atribut inode pada perintah “ls” maka akan terlihat perbedaanya. Lihat:

    aim@aim-tian:~$ ls -lhi jajal*
    1572900 -rw-rw-r– 1 aim aim 0 Mei 22 21:46 jajal
    1572910 -rw-rw-r– 1 aim aim 0 Mei 22 21:46 jajal

    Nah untuk itu beginilah kira-kira menggunakan perintah find dengan memanfaatkan inode number dari suatu file:

    aim@aim-tian:~$ sudo find -inum “1572910”
    [sudo] password for aim:
    ./jajal

    Lalu apabila kita ingin mencari file dengan inode itu sekaligus merubah namanya. Maka perintahnya berganti menjadi seperti ini:

    aim@aim-tian:~$ sudo find -inum “1572910” -exec mv {} jajalku \;
    aim@aim-tian:~$ ls jajal*
    jajal jajalku

  8. Selanjutnya adalah mencari file dengan kata kunci permission yang digunakannya. Berikut ini contohnya:
    aim@aim-tian:~$ mkdir testing
    aim@aim-tian:~$ cd testing/
    aim@aim-tian:~/testing$ touch jajal
    aim@aim-tian:~/testing$ touch jajalku

    Lalu kita atur permissionnya:

    aim@aim-tian:~/testing$ chmod 755 jajal
    aim@aim-tian:~/testing$ chmod 640 jajalku
    aim@aim-tian:~/testing$ ls -l
    total 0
    -rwxr-xr-x 1 aim aim 0 Mei 25 22:46 jajal
    -rw-r—– 1 aim aim 0 Mei 25 22:46 jajalku

    Lalu sekarang kita coba dengan perintah findnya ya..

    aim@aim-tian:~$ find testing/ -perm -u=rwx -type f -exec ls -l {} \;
    -rwxr-xr-x 1 aim aim 0 Mei 25 22:46 testing/jajal aim@aim-tian:~$

    Dari perintah di atas, saya menggunakan option -perm yang artinya mencari sesuai permission dengan -u adalah Owner (Pemilik file), = rwx yang adalah yang mempunyai hak akses read, write, dan execute dengan tipe (-type) f atau file normal, -exec lalu memberikan perintah “ls -l”.
    Lalu bagaimana apabila ingin mencari suatu file berdasarkan nilai oktal permissionnya? Jawabannya:

    aim@aim-tian:~$ find testing/ -perm 640 -type f -exec ls -l {} \;
    -rw-r—– 1 aim aim 0 Mei 25 22:46 testing/jajalku
    aim@aim-tian:~$

    Gampang kan?

  9. Mencari file dengan ukuran size kosong
    aim@aim-tian:~$ find ~ -empty
    /home/aim/.Xauthority.PNUKWW
    /home/aim/.netbeans/7.3/.metadata
    /home/aim/.netbeans/7.3/config/GF3/domain1/applications
    /home/aim/.netbeans/7.3/config/GF3/domain1/config/default-web.xml
    /home/aim/.netbeans/7.3/config/GF3/domain1/logs
    /home/aim/.netbeans/7.3/config/GF3/domain1/autodeploy/.autodeploystatus
    /home/aim/.netbeans/7.3/config/GF3/domain1/autodeploy/bundles
    /home/aim/.netbeans/7.3/config/ireport/palette/ReportElements/JRSort.irpitem_hidden

    Hasilnya nanti akan banyak banget yang keluar, maka dari itu kita batesin memakai fungsi maxdepth yang udah saya jelasin di atas.

    aim@aim-tian:~$ find ~ -maxdepth 1 -empty
    /home/aim/.Xauthority.PNUKWW
    /home/aim/.gnome2_private
    /home/aim/.Xauthority.MXSCXW
    /home/aim/.Xauthority.8SMVWW
    /home/aim/.Xauthority.38JTWW
    /home/aim/.Xauthority.249DXW
    /home/aim/Music

    Dari tampilan di atas, ternyata saya mendapatkna hasil beserta dengan file hidden. Bagaimana kalau saya tidak ingin file hidden ikut terbawa? Jawabannya:

    aim@aim-tian:~$ find -maxdepth 1 -empty -not -name “.*”
    ./Music
    ./Public
    ./Videos
    ./Templates
    aim@aim-tian:~$

  10. Mencari file berdasarkan tipe file. Misalnya kita ingin mencari file socket, maka perintah yang digunakan adalah:
    aim@aim-tian:~$ sudo find /var/run/ -type s
    /var/run/postgresql/.s.PGSQL.5432
    /var/run/acpid.socket
    /var/run/cups/cups.sock
    /var/run/avahi-daemon/socket
    /var/run/sdp
    /var/run/dbus/system_bus_socket
    find: `/var/run/user/aim/gvfs’: Permission denied
    /var/run/user/aim/pulse/native
    /var/run/user/aim/keyring-iTxT8h/gpg
    /var/run/user/aim/keyring-iTxT8h/ssh
    /var/run/user/aim/keyring-iTxT8h/pkcs11
    /var/run/user/aim/keyring-iTxT8h/control
    /var/run/udev/control aim@aim-tian:~$

    Lalu apabila kita ingin mencari sebuah direktori, bisa menggunakan perintah ini:

    aim@aim-tian:~$ find . -type d -maxdepth 1
    ./.netbeans
    ./.thunderbird
    ./Documents
    ./.macromedia
    ./.android
    ./.argouml

  11. Lalu mencari file berdasarkan ukuran (size) filenya:
    aim@aim-tian:~$ find /mnt/Data/ -size +600M
    /mnt/Data/Aplikasi/ProfessionalPlus/ProfessionalPlus.exe
    /mnt/Data/Aplikasi/office2010/ProfessionalPlus.iso
    /mnt/Data/Aplikasi/office2010/ProfessionalPlus/ProfessionalPlus.exe
    /mnt/Data/Aplikasi/office2010/ProfessionalPlus.exe
    /mnt/Data/Android/Game/NOVA/nova3.tar.gz

    Lalu bagaimana apabila kita ingin mencari file dibawah dari size yang telah ditentukan? Caranya:

    aim@aim-tian:~$ find /mnt/Data/ -size -600M

  12. Menghapus file-file dengan extension tertentu dan dalam ukuran tertentu
    aim@aim-tian:~$ find / -type f -name *.zip -size +50M -exec rm -i {} \;”

    Perintah di atas maksudnya adalah saya menghapus file dengan ekstensi zip yang ukurannya lebih sama dengan 50 Mega.

  13. Mencari file dengan waktu akses,modifikasi/di buat yang lebih spesifik
    //mencari file berdasarkan modifikasi
    aim@aim-tian:~$ find . -mmin -6 -maxdepth 1
    ./.xsession-errors
    aim@aim-tian:~$

    Perintah di atas adalah saya mencari file yang telah di akses atau di modifikasi dalam retang waktu kurang dari 6 Menit.
    Lalu apabila kita ingin mencari file dengan rentang waktu dalam hitungan hari (1×24 jam) bisa menggunakan perintah ini:

    aim@aim-tian:~$ find . -mtime -1 -maxdepth 1
    //mencari file berdasarkan modifikasi
    ./.mysql_history
    ./.filezilla
    ./.dmrc
    ./.bash_history
    ./.ssh
    ./.xsession-errors.old
    ./.cache
    ./.Xauthority
    ./.xsession-errors
    ./.gimp-2.8
    aim@aim-tian:~$

    Lalu apabila ingin mencari file berdasarkan akses waktu tertentu bisa menggunakan perintah ini:

    aim@aim-tian:~$ find . -atime -1 -maxdepth 1
    ./.netbeans
    ./PlayOnLinux’s virtual drives
    ./.thunderbird
    ./Documents
    ./.macromedia
    ./.android
    ./.mysql_history
    ./.argouml

    Lalu apabila ingin mencari file berdasarkan perubahan tertentu bisa menggunakan perintah ini:

    aim@aim-tian:~$ find . -ctime -1 -maxdepth 1
    ./.mysql_history
    ./.filezilla
    ./.dmrc
    ./.bash_history
    ./Ubuntu One
    ./.ssh
    ./.xsession-errors.old
    ./.cache
    ./.Xauthority
    ./.xsession-errors
    ./.gimp-2.8

  14. Mengesekusi perintah find pada saat yang bersamaan
    Misal ingin mencari file dengan permission 644, lalu hasilnya disimpan di file hasil1.txt. Contoh perintahnya:
    aim@aim-tian:~$ sudo find / \( -perm -644 -fprintf /root/hasil1.txt ‘%#m %u %p\n’ \)

  15. Menggunakan alias. Kita ambil contoh dari perintah di atas saya gunakan dengan menggunakan alias, agar lebih mudah pemakaiannya.
    aim@aim-tian:~$ alias cari=”sudo find / \( -perm -644 -fprintf /root/hasil1.txt ‘%#m %u %p\n’ \)”
    //setelah itu cukup gunakan nama alias untuk mengeksesuki perintah find di atas
    aim@aim-tian:~$ cari

Sumber: http://zeestuff.wordpress.com

One comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s