Home » , , » find command di linux / unix

find command di linux / unix

(seputar-programming.blogspot.com).  Jika anda sudah terbiasa menggunakan sistem operasi windows, maka anda tidak asing lagi dengan perintah "search" yang ada di windows explorer, yang digunakan untuk mencari suatu file / directory ( folder ) berada di directory / folder apa.
jika anda menggunakan sistem operasi linux / unix, maka anda perlu menggunakan console untuk mencari file yang ada maksud dan mengetikkan command unix find.


berikut ini adalah command untuk menggunakan perintah unix find:

1. unix find - Mencari file / direktory dengan nama tertentu yang case-sensitif

# find -name "*0101*"

./Perf/2013/Jan/BTSFwdPwrUsg-20130101.txt.gz
./Perf/2013/Jan/BTSPerf-20130101.txt.gz
./Perf/2013/Jan/BTSPerfCh-20130101.txt.gz
./Perf/2013/Jan/BTSTxRxPwr-20130101.txt.gz
./Perf/2013/Jan/BSCPerf-20130101.txt.gz
./Perf/2013/Jan/BTSCPUUsage-20130101.txt.gz
./T1E1Trunk/2012/Jan/T1E1Trunk-20120101.txt.gz

2. unix find - Mencari file / direktory dengan nama tertentu dengan mengabaikan uppercase / lowercasenya (in case-sensitif )

# find -iname "*t1e1*2012*"
./T1E1Trunk/2012/Jan/T1E1Trunk-20120103.txt.gz
./T1E1Trunk/2012/Jan/T1E1Trunk-20120104.txt.gz
./T1E1Trunk/2012/Jan/T1E1Trunk-20120105.txt.gz
./T1E1Trunk/2012/Jan/T1E1Trunk-20120106.txt.gz
./T1E1Trunk/2012/Jan/T1E1Trunk-20120107.txt.gz
./T1E1Trunk/2012/Jan/T1E1Trunk-20120108.txt.gz
./T1E1Trunk/2012/Jan/T1E1Trunk-20120109.txt.gz
./T1E1Trunk/2012/Jan/T1E1Trunk-20120110.txt.gz
./T1E1Trunk/2012/Jan/T1E1Trunk-20120112.txt.gz
./T1E1Trunk/2012/Jan/T1E1Trunk-20120113.txt.gz

3. unix find - Mencari file dengan kedalaman tertentu ( menggunakan -mindepth dan -maxdepth )

# find -mindepth 3 -iname "*t1e1*2012*"
./T1E1Trunk/2012/Jan/T1E1Trunk-20120103.txt.gz
./T1E1Trunk/2012/Jan/T1E1Trunk-20120104.txt.gz
./T1E1Trunk/2012/Jan/T1E1Trunk-20120105.txt.gz
./T1E1Trunk/2012/Jan/T1E1Trunk-20120106.txt.gz
./T1E1Trunk/2012/Jan/T1E1Trunk-20120107.txt.gz

jika hasilnya tidak muncul, maka bisa dipastikan namanya yang gak ada, atau depthnya yang kurang..

4. unix find - Mengeksekusi hasil dari find dengan menggunakan xargs (detail xargs akan di jelaskan disini )

# find -mindepth 3 -iname "*t1e1*2012*" | xargs ls -ltr
-rwxr-Sr-t 1 root root 39635 Jul 12 20:16 ./T1E1Trunk/2012/Jan/T1E1Trunk-20120103.txt.gz
-rwxr-Sr-t 1 root root 39308 Jul 12 20:16 ./T1E1Trunk/2012/Jan/T1E1Trunk-20120106.txt.gz
-rwxr-Sr-t 1 root root 39677 Jul 12 20:16 ./T1E1Trunk/2012/Jan/T1E1Trunk-20120105.txt.gz
-rwxr-Sr-t 1 root root 39182 Jul 12 20:16 ./T1E1Trunk/2012/Jan/T1E1Trunk-20120104.txt.gz

5. unix find - Menggunakan command -not sebagai invers nya..

# find -not -iname "*t1e1*201201*"
./T1E1Trunk/2012/may/T1E1Trunk-20120502.txt.gz
./T1E1Trunk/2012/may/T1E1Trunk-20120511.txt.gz
./T1E1Trunk/2012/may/T1E1Trunk-20120520.txt.gz
./T1E1Trunk/2012/may/T1E1Trunk-20120529.txt.gz

6. unix find - mencari file dengan nama yang sama dengan argument iname (-i)
untuk memudahkan dalam mencernanya, maka kita coba buat file "testblog.txt" dan "testblog.txt ".
# touch "testblog.txt"

# touch "testblog.txt "


jika di list maka akan keluar
# ls -i1 testblog*
25068256 testblog.txt
25068257 testblog.txt

kita bisa rename filenya menjadi testblog1.txt dengan menggunakan xargs, berikut comnandnya :
# find -inum 25068257 | xargs -i mv -f {} "testblog1.txt"
# find -inum 25068257
./testblog1.txt

7. unix find - Mencari file berdasarkan permission tertentu dengan menggunakan argument -perm
# find . -perm 644 -type f | xargs ls -l
-rw-r--r-- 1 root   root          0 Oct  1 14:24 ./test/testblog1.txt
-rw-r--r-- 1 root   root          0 Oct  1 14:23 ./test/testblog.txt

8. unix find - Mencari file empty (kosong / 0 byte) dengan menggunakan argument -empty pada home directory
# find ~ -empty | xargs ls -l
-rw-r--r-- 1 root   root      0 Oct  1 14:24 /home/hendra/test/testblog1.txt
-rw-r--r-- 1 root   root      0 Oct  1 14:23 /home/hendra/test/testblog.txt

anda dapat mengkombinasikannya dengan menggunakan -not dan atau -type f (untuk tipe file ) atau -type d untuk tipe directory
#  find ~ -not -empty -type d
#  find ~ -not -empty -type f

9. unix find - Mencari file terbesar top ten di directory
# find -type f -not -empty | xargs ls -s | sort -n -r | head -10
10436 ./cr_runcmd_allbsc.log
  232 ./hello_2.log
  176 ./hello_1.log
   76 ./test.tar

10. unix find - Mencari file yang terkecil top ten di directory
# find -type f -not -empty | xargs ls -s | sort -n  | head -10
    4 ./php_script/cr_adconf_2.php
    4 ./php_script/cr_adconf_4.php

11. unix find - Mencari file dengan size tertentu dengan menggunakan -size
untuk mendapatkan file yang berukuran > 100 M
# find / -size +100M
untuk mendapatkan file yang berukuran < 100 M
# find / -size -100M
untuk mendapatkan file yang berukuran = 100 M
# find / -size 100M

12. unix find - Mencari file berdasarkan tipenya dengan menggunakan -type
socket files.
# find . -type s

directories
# find . -type d

normal files
# find . -type f

hidden files
# find . -type f -name ".*"

hidden directories
# find -type d -name ".*"

13. unix find - Mencari file berdasarkan Access / Modification / Change Time
penjelasan :
   1. Modification time. Modification time akan update bila content dari filenya berubah.
   2. Access time. Access time akan update ketika file tersebut di akses.
   3. Change time. Change time akan update ketika inode data berubah.
    * -mmin n ( modifikasi > n menit yang lalu )     * -mtime n ( modifikasi > n hari yang lalu )
    * -amin n ( akses terakhir >  n menit yang lalu )     * -atime n ( akses terakhir > n hari yang lalu )
    * -cmin n ( perubahan inode terakhir > n menit yang lalu )     * -ctime > n (perubahan inode terakhir n hari yang lalu )
contoh penggunaan :
# find -type f -mtime -60
# find -type f -ctime -60
# find -type f -atime -60

14. unix find - Mencari file dengan membandikan waktu perubahan dari file lain.
# find -newer /etc/passwd
./T1E1Trunk-20120401.txt.gz
./T1E1Trunk-20120402.txt.gz
./T1E1Trunk-20120403.txt.gz
./T1E1Trunk-20120404.txt.gz
./T1E1Trunk-20120405.txt.gz


# find -anewer /etc/hosts
./T1E1Trunk-20120401.txt.gz
./T1E1Trunk-20120402.txt.gz
./T1E1Trunk-20120403.txt.gz
./T1E1Trunk-20120404.txt.gz
./T1E1Trunk-20120405.txt.gz


# find -cnewer /etc/fstab
./T1E1Trunk-20120401.txt.gz
./T1E1Trunk-20120402.txt.gz
./T1E1Trunk-20120403.txt.gz
./T1E1Trunk-20120404.txt.gz
./T1E1Trunk-20120405.txt.gz

15. unix find - Mencari file di linux / unix dengan menggunakan argument -xdev
# find / -xdev -name "*.log"
hanya akan mencari pada " / ", tidak di mount point lain di bawah " / "

# find / -name "*.log"
akan mencari seluruh file yang mengandung ektention .log yang dimulai dari  " / ".

16. unix find - Mencari file di linux / unix dengan multiple grep
# find ./ -type f | egrep -i "string1|string2"

berikut ulasan dari saya semoga teman-teman tidak bosan mengunjungi blog saya ini..

0 comments:

Post a Comment

 
Support : Your Link | Your Link | Your Link
Copyright © 2013. Seputar Programming - All Rights Reserved
Template Created by Creating Website Published by Mas Template
Proudly powered by Blogger