29Ekim Açık Kaynak açılış Akademik Bilişim 2012 Akademik Bilişim 2012 Uşak akgül all Alt+Ctrl+Delete altlinux Anatolya installer apache apache2 arm AtlantiS autoindex backup bağlantı ban banana bash bash script belediye betik bind9 boot bootloader bootparametre böl burg cache canlicdrom cdrom centos CHKUSER chrome clone clonezilla CloneZilla ile Remote Disk Clone işlemi cron crontab çöp dd denizaltı denizaltı kablo Desteği destek Dil Disk disk eklemek disket dizin şifreleme django djb dkim dns DNS sistemi docker Domain download drbl dvd e-posta eğitim eklenti EniXma eposta eQmail esxi ev ev almak fail2ban fake fakemail feed feedbro ffmpeg find Firefox format fortran free FreeBSD freenas ftp full backup 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 KAMP kernel kernellogo kesin çözüm key klonlamak komut konsol koruma lampp. httpd lilo link linux liste listeci listmanager live livecd LKD loader login logo LVM mail mail hosting Mail-in-a-Box mailcow mailman mailserver mandriva-tr.org matrax Mint mirror mlmmj modül MTA multisite mustafa akgül Mustafa Akgül Özgür Yazılım Yaz Kampı. Abant İzzet Baysal Üniversitesi 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 pardus parola paste patch paylaşım pdf perl pfsense pfsense full backup phpmyadmin pi plan Planet planetplanet plesk pop3 poste.io postfix postfixadmin proje proxy putty python qmail qmailtoaster randmap Ras webserver Raspberry pi Raspberry Pi raspi rawdisk recovery remote repository resim resimler robots.txt 401 rss rsync rsyncd rsyncd etiketi s/qmail Saldırı Samba screen script sendonly smtp server senronizasyon server servis shell sistem Slackarm slackware Slackware slackware-live slackware.org.tr slackware arşiv httrack truva linux hatıralar slacky.eu SMF SMF türkçe karakter problemi smtp sosyal ağ spam spf sql backup sqlite sqlite3 sqlite3 to wordpress ssh ssh_key ssh-key SSL ssl sertifika subversion sudo sunucu svn swap swapfile syslinux system system images şifreleme takasfile Tatil Tavuk Teneke Kebabı Tenekede Tavuk theme thunderbird TightVNC tmux Tokat Kebabı tokat kebabı sobası etiketi Trash Trash-cli Truva Linux truvalinux Turkcell tuxweet Türkçe türkiye ubuntu unban UNIX uzak varnish veri Virtualbox vmware Vodafone vps Vsftp vsftpd Wampp web web robot Web server web Sunucu webp webserver webserver Akıllı Tahta wget whitelist 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.