29Ekim Açık Kaynak açılış Akademik Bilişim 2012 Akademik Bilişim 2012 Uşak all Alt+Ctrl+Delete altlinux Anatolya installer apache apache2 arm AtlantiS autoindex backup bağlantı banana bash bash script belediye betik bind9 boot bootparametre böl cache canlicdrom cdrom centos CHKUSER clonezilla cron crontab çöp denizaltı denizaltı kablo Desteği destek Dil disket dizin şifreleme django djb dkim dns DNS sistemi Domain download drbl dvd e-posta eğitim eklenti EniXma eposta eQmail esxi ev ev almak fake fakemail feed ffmpeg find Firefox fortran free FreeBSD freenas ftp Gazze Genel Gentoo Getgnu.org gezegen git github gitweb Gmail gnupg Gökşin Akdeniz görev Görsel gpg grub grub2 günlük Güvenlik Hacker harddisk hizmet hosting id_rsa imap index indimail indir internet ipv4 ipv6 iso israil İşletim Sistemi kablo kernel kernellogo key komut konsol koruma lampp. httpd lilo link linux liste listeci listmanager live livecd LKD loader login logo mail mail hosting mailman mandriva-tr.org matrax Mint mirror mlmmj modül MTA multisite Müteahhit mx MySQL netinternet Netqmail network nfs nginx ngrok not.py online radyo opendkim openssl önyükleme özgür yazılım panel pano parola paste patch paylaşım pdf perl phpmyadmin pi plan Planet planetplanet plesk pop3 postfix proje proxy putty python qmail qmailtoaster Ras webserver Raspberry pi Raspberry Pi raspi rawdisk recovery remote repository resim resimler rss rsync rsyncd rsyncd etiketi s/qmail Saldırı Samba screen script senronizasyon server servis shell sistem Slackarm slackware Slackware slackware-live slackware.org.tr slackware arşiv httrack truva linux hatıralar slacky.eu sosyal ağ spf sql backup sqlite sqlite3 sqlite3 to wordpress ssh ssh_key ssh-key SSL ssl sertifika subversion sunucu svn swap swapfile syslinux system system images şifreleme takasfile Tatil Tavuk Teneke Kebabı Tenekede Tavuk thunderbird TightVNC tmux Tokat Kebabı tokat kebabı sobası etiketi Trash Trash-cli Truva Linux truvalinux Turkcell tuxweet Türkçe türkiye ubuntu UNIX uzak varnish veri Virtualbox vmware Vodafone vps Vsftp vsftpd Wampp web Web server web Sunucu webserver webserver Akıllı Tahta wget WINN Windows wordpress Wordpress wordpress multisite www xampp Xnest yansı yansılama yansılamak yapıştır yazmak Yedekleme Yemek zulüm

Unix & GNU/Linux : Find Komutunun Örneklerle Kullanımı.

gnu-linux-tux-coffee-logoMerhabalar

Bu yazıda Unix ve GNU/Linux tabanlı işletim sistemlerinde kullanılan find komutunun örnekler halinde kullanımına değineceğim. Find komutu dosya aramak, dosya boyutlarını listelemek gibi ileri düzey farklı işlevler içinde kullanılmaktadır.

Find komutunun detaylarına bakalım.

1. Sistem üzerinde log.txt ismi olan dosyaları listelemek isterseniz aşağıdaki komutu kullanabilirsiniz.
root# find / -name "log.txt"

2. Sistem üzerinde log.txt ismi geçen dosyaları listelemek isterseniz aşağıdaki komutu kullanabilirsiniz. Örneğin, bir path dosyanın içerisinde log.txt ismi geçiyor ise listeyecektir. Basit bir örnek verelim, ( blabla.log.txt.blabla gibi.)

 

3. Sistem üzerinde log adında bir dizin aramak isterseniz aşağıdaki komut kullanılabilir.
root# find / -type d -name "log"

4. Bir dosya ararken büyük/küçük harf duyarsızlığını aktif etmek isterseniz aşağıdaki komuta        -iname parametresi eklenebilir.
root# find / -iname "log.txt"

5. Belirli bir dizin içerisinde bir dosya aramak isterseniz aşağıdaki gibi bir komut kullanabilirsiniz. Örnek, /home dizini içerisinde log.txt dosyasını bulmak için,
root# find /home -name "log.txt"

Find “Size” Seçenekleri


k : kilobytes   (1024 bytes)

M : megabytes  (1024 kilobytes)

G : gigabytes   (1024 megabytes)

T : terabytes   (1024 gigabytes)

P : petabytes  (1024 terabytes)

Find “Type” Seçenekleri


b : özel blok dosyası

c : özel karakter dosyası

d : dizin

f  : basit dosya

l  : sembolik link

P : FIFO

s  : soket

Find Komutunu “Tar” Komutu ile Kullanmak


6. Aşağıdaki komut /home dizini altındaki .mp3 uzantılı dosyaları myfile.tar adında bir dosya oluşturacak ve içerisine sıkıştıracaktır.
root# find /home -type f -name "*.mp3" | xargs tar cvf myfile.tar

7. Aşağıdaki komut ise /home dizini altındaki .mp4 uzantılı dosyaları oluşturulan myfile.taradında dosyaya ekleyecektir.
root# find /home -type f -name "*.mp4" | xargs tar rvf myfile.tar

8. Aşağıdaki komut /home dizini içerisinde, boyutu 500MB olan dosyaları listeleyecektir.
root# find /home -type f -size 500M

9. Aşağıdaki komut /home dizini içerisinde, boyutu 500MB üstü olan dosyaları listeleyecektir.
root# find /home -type f -size +500M

10. Aşağıdaki komut /home dizini içerisinde, boyutu 500MB altı olan dosyaları listeleyecektir.
root# find /home -type f -size -500M

11. Aşağıdaki komut ise /home dizini içerisinde, boyutu 1GB olan dosyaları listeleyecektir. Üstteki+ ve seçeneklerini bu komutta ‘da kullanabilirsiniz.
root# find /home -type f -size 1G

12. Örneğin, /home dizini içerisinde boyutu 500MB ile 1GB arasındaki dosyaları listelemek isterseniz aşağıdaki gibi bir komut kullanabilirsiniz.
root# find /home -type f -size +500M -size -1G

13. Aşağıdaki komut /home dizini içerisinde 500MB olan dosyaları bulup size herhangi bir soru sormadan silecektir. Kullanırken dikkat ediniz. !
root# find /home -type f -size 500M -exec rm -rf {} ;

14. Aşağıdaki komut /home dizini altındaki 500MB olan .mp3 uzantılı dosyaları size herhangi bir soru soramdan silecektir. Yada 500MB ‘dan daha fazla olan .mp3 dosyalarını silmek isterseniz+500MB parametresini ekleyebilirsiniz.
root# find /home -type f -name *.mp3 -size 500M -exec rm {} ;

15. Aşağıdaki komut /home dizini içerisinde 500 karakterden fazla olan dosyaları listeleyecektir. Aynı şekilde + ve seçeneklerini bu komutta ‘da kullanabilirsiniz.
root# find /home -type f -size +500c

16. Sistem üzerinde birden fazla dosyayı aynı anda aramak isterseniz aşağıdaki komutu kullanabilirsiniz. Örneğin, log1.txt ve log2.txt adlı iki dosyayı aynı anda aramak için,
root# find / -type f ( -name "log1.txt" -o -name "log2.txt" ) -print

home/log1.txt 
home/log2.txt

17. Aşağıdaki komut /home dizini içerisinde son 2 gün içerisinde oluşturulmuş ve dosya izinleri değiştirilmiş olan dosyaları listeleyecektir. Dizinler için ise ikinci komut kullanılabilir.
root# find /home -type f -ctime 2 
root# find /home -type d -ctime 2

18. Aşağıdaki komut /home dizini içerisinde son 1 saat içerisinde erişilmiş dosyaları listeyecektir. Komut dakika cinsinden çalışmaktadır.
root# find /home -type f -amin -60

19. Sistem üzerinde 777 iznine sahip olan dosyaları listelemek isterseniz aşağıdaki komutu kullanabilirsiniz. Dizinler için ise ikinci komut kullanılabilir.
root# find / -type f -perm 777 root# find / -type d -perm 777

20. Sistem üzerinde sadece u+rwx iznine sahip olan dosyaları listelemek isterseniz aşağıdaki komut kullanılabilir.
root# find / -type f -perm u+rwx

root# find / -type f -perm u+rwx | xargs ls -alh

21. Sistem üzerinde SUID bit izni olan dosyaları listelemek isterseniz aşağıdaki komut kullanılabilir.
root# find / -type f -perm /u=s 

root# find / -type f -perm +4000

22. Yukarıdaki komutun aynısı sadece -user ali parametresini ekleyerek ali kullanıcısına ait SUID bit izni olan tüm dosyaları görebiliriz.
root# find / -user ali -type f -perm /u=s 

root# find / -user ali -type f -perm +4000

23. Aşağıdaki komutu kullanarak aynı anda SGID izinlerini ve SUID izinlerine sahip olan dosyaları görüntüleyebilirsiniz.
root# find / -type f -perm -4000 -o -perm -2000 -print

24. Sistem üzerinde SGID bit izni olan dosyaları ‘da listelemek isterseniz aşağıdaki komutu kullanabilirsiniz.
root# find / -type f -perm /g+s 

root# find / -type f -perm /2000

25. Sistem üzerinde Sticky bit iznine sahip olan dosyaları görmek isterseniz birinci komut kullanılabilir. Aynı şekilde bu izne sahip dizinleri görmek isterseniz ise ikinci komut kullanılabilir.
root# find / -type f -perm 1551

root# find / -type d -perm 1551

26. Belirli bir dizin içerisinde 777 izni hariç diğer tüm dosyaları listelemek isterseniz aşağıdaki komut kullanılabilir. 
root# find /home ! -perm 777 -type f 

root# find /home ! -perm 777 -type f | xargs ls -alh

27. Örneğin, /home dizini içerisinde 777 iznine sahip olan dosyaların izinlerini 755 izni ile değiştirmek isterseniz aşağıdaki komutu kullanabilirsiniz. Kullanırken çok dikkat ediniz bazı dosyaların erişim izinleri bozulduğu zaman çalışmayabiliyor.
root# find /home -type f -perm 777 -print -exec chmod 755 {} ;

28. Yukarıdaki komutun aynısı sadece dizinler için bunu yapmak isterseniz aşağıdaki komutu kullanabilirsiniz.
root# find /home -type d -perm 777 -print -exec chmod 755 {} ;

29. Aşağıdaki komutlar farklı gruplara ait sadece read-only iznine sahip dosyaları listleyecektir. Eğer izinleri ile birlikte görmek isterseniz komutun sonuna | xargs ls -lah parametresini ekleyebilirsiniz.
root# find / -type f -perm /u=r 

root# find / -type f -perm /g=r

root# find / -type f -perm /o=r

30. Aşağıdaki komutlar ‘da farklı gruplara ait sadece executable-only iznine sahip dosyaları listleyecektir. 
root# find / -type f -perm /u=x 

root# find / -type f -perm /g=x

root# find / -type f -perm /o=x

31. Aşağıdaki komutlar ise farklı gruplara ait sadece write-only iznine sahip dosyaları listleyecektir.
root# find / -type f -perm /u=w 

root# find / -type f -perm /g=w

root# find / -type f -perm /o=w

32. Aşağıdaki komut /home dizini içerisinde log.txt adlı dosyaları bulup size hiç bir soru sormadan silecektir. Kullanırken dikkat edin. !
root# find /home -type f -name "log.txt" -exec rm -rf {} ;

33. Aşağıdaki komut /home dizini içerisinde, içeriği boş olan dosyaları listeleyecektir.
root# find /home -type f -empty

34. Aşağıdaki komut ise yukarıdaki komuta benzer görevi ise /home dizini altındaki boş olan dizinleri listeleyecektir.
root# find /home -type d -empty

35. Hiçbir kullanıcıya ait olmayan dosyaları görmek isterseniz aşağıdaki komutu kullanabilirsiniz.
root# find / -nouser -print

36. Hiçbir gruba ait olmayan dosyaları görmek isterseniz aşağıdaki komutu kullanabilirsiniz.
root# find / -nogroup -print

37. Bir dizin altında gizli olan dosyaları görmek isterseniz aşağıdaki gibi bir komut kullanabilirsiniz.
root# find /home -type f -name “.*”

38. Örneğin, bir ali adlı kullanıcımız olsun ve aşağıdaki gibi bir komut kullanarak ali kullanıcısına ait tüm dosyaları görebiliriz.
root# find / -type f -user ali 

root# find / -type f -user ali |xargs ls -lah

39. Aynı şekilde ali kullanıcısına ait özel bir dosya arıyorsak aşağıdaki gibi bir komut kullanabilirsiniz.



root# find / -type f -user ali -name "log.txt"

40. Sistemde ali grubuna ait tüm dosyaları listelemek istersek aşağıdaki komut kullanılabilir.



root# find / -type f -group ali

41. Yukarıdaki komutun -type f parametresini silip -type d parametresini eklersek ali grubuna ait tüm dizinleri görebiliriz.



root# find / -type d -group ali

42. Sistemde ali kullanıcısına ait tüm dosyaları bulup silmek isterseniz aşağıdaki komutu kullanabilirsiniz. Kullanırken dikkat ediniz. !



root# find / -type f -user ali -exec rm -rf {} ;

43. Aşağıdaki komut /home dizini içerisinde son 5 gün içerisinde değiştirilmiş dosyaları listeleyecektir.



root# find / -type f -mtime 5

44. Yukarıdaki komuta benzer bir komut ise aşağıdaki gibi. Aşağıdaki komut ise /home dizini içerisinde son 10-20 gün arası değiştirilmiş dosyaları listeleyecektir. Detaylı bilgi almak istersenizstat dosya_ismi komutu kullanılabilir.



root# find / -type f -mtime +10 -mtime -20

45. Bir dizin içerisinde son 5 gün içerisinde erişilmiş olan tüm dosyaları görmek istersek aşağıdaki komut kullanılabilir. Hemen erişilmiş dosyaları görmek için -atime 0 parametresi kullanılabilir.



root# find /home -type f -atime 5 

root# find /home -type f -atime 0

46. Aşağıdaki komut /home dizini içerisinde son 1 saat içerisinde değiştirilmiş tüm dosyaları listeleyecektir. Bu parametre dakika cinsinden çalışmaktadır.



root# find /home -type f -cmin -60

 

Daha fazla bilgi için man find komutu kullanabilirsiniz.

Kaynak Site: http://lifeoverlinux.com/2015/08/06/find-komutunun-orneklerle-kullanimi/

 

Yorum Gönder

[blogger][facebook][disqus][spotim]

Author Name

İletişim Formu

Ad

E-posta *

Mesaj *

Blogger tarafından desteklenmektedir.