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