Dikkat: Bu yazıda geçen komutlar hem Linux tabanlı Centos hem de Linux tabanlı Red Hat (RHEL) işletim sisteminde geçerlidir.
Dosya Arama İşlemi:
Dosya arama işlemi “find” komutu ile yapılmaktadır.
- find [aramaya_balşanacak_dizin] [arama_secenekleri]
“find” komutunu aşağıdaki örnekte en basit yapısıyla kullanalım.
1: İlk önce “su –“ komutuyla “root” girişi yapalım.
2: “find / -name test_Diz*” komutu ile “/” kök dizinde ismi “test_Diz” ile başlayan dosya veya klasörleri bul diyelim. Burada kullanılan yıldız (*) “test_Diz” kelimesinin devamının önemi olmadığı için kullanılmaktadır. Bundan dolayı sorgu masa üstünde “test_Dizin_1” ve bu dizin içerisinde ““test_Dizin_2” olmak üzere 2 adet çıktı vermiştir.
3: Diğer komutumuzda da tam isim kullandık. “find / -name networkkampus” komutu ile masa üstünde bulunan “test_Dizin_1” klasörü içerisinde bir adet “networkkampus” isimli dosya olduğunu öğrendik.
Arama Seçenekleri:
- -name = “… isimli dosya veya dizin” şeklinde arama yapılır. Dosya ismi tam yazılabilir veya * ve ? gibi karakterlerde kullanılabilir.
- -user = “… isimli kullanıcıya ait dosyalar” şeklinde arama yapılır.
- -group = “… isimli gruba ait dosyalar” şeklinde arama yapılır.
- -perm = “… izinli dosyalar” şeklinde arama yapılır.
- -newer dosyaadi = “Dosyaadi isimli dosyadan daha yeni olan dosyalar” şeklinde arama yapılır.
- -size [+|-] büyüklük = “Şu büyüklükte, şu büyüklükten daha küçük veya daha büyük” şeklinde arama yapılır.
- -anewer dosyaadi = “Dosyaadi isimli dosyaya yapılan erişimden daha sonra erişilmiş dosyalar” şeklinde arama yapılır.
- -amin [+|-] süre = “Şu dakika önce, şu dakikadan daha az süre önce veya daha fazla süre önce erişilen dosyalar” şeklinde arama yapılır.
- -atime [+|-] süre = “Şu gün önce, şu günden daha az gün önce veya daha fazla gün önce erişilen dosyalar” şeklinde arama yapılır.
- -cmin [+|-] süre = “Şu dakika önce, şu dakikadan daha az dakika önce veya daha fazla dakika önce statüsü değiştirilen dosyalar” şeklinde arama yapılır.
- -ctime [+|-] süre = “Şu güb önce, şu günden daha az gün önce veya daha fazla gün önce statüsü değiştirilen dosyalar” şeklinde arama yapılır.
- -links [+|-] sayı = “… miktarda hard-linke sahip olan dosyalar” şeklinde arama yapılır.
- -mmin [+|-] süre = “Şu dakika önce, şu dakikadan daha az süre önce veya daha fazla süre önce değiştirilmiş olan dosyalar” şeklinde arama yapılır.
- -mtime [+|-] süre = “Şu gün önce, şu günden daha az süre önce veya daha fazla gün önce değiştirilmiş olan dosyalar” şeklinde arama yapılır.
- -nouser = “Hiçbir kullanıcıya ait olmayan dosyalar” şeklinde arama yapılır.
- -nogrup = “Hiçbir gruba ait olmayan dosyalar” şeklinde arama yapılır.
- -regex … = “… isimli regular expresion’a uyan dosyalar” şeklinde arama yapılır. regular expresion dosya ismi üzerinde değil tam yol bilgisi üzerinde denenmektedir.
- -type … = “… dosya tipindekiler” şeklinde arama yapılır. (f: Normal dosya, d: Dizin, l: soft-link, b: blok aygıt dosyası, c: karakter aygıt dosyası)
- -exec komut \; = “… dosyası için verilen komutu uygula” şeklinde kullanılır.
- -ok komut \; = “… dosyası için verilen komutu uygula” şeklinde kullanılır. “-exec” parametresinden farkı kullanıdan onay istemesidir.
Bazı parametrelerde kullanılan artı (+) ve eksi (–) işaretlerinin anlamları aşağıda açıklanmıştır.
- sayı = Belirtilen Sayı Kadar
- + sayı = Belirtilen Sayıdan daha büyük
- – sayı = Belirtilen Sayıdan daha küçük
“find” komutu ile aşağıdakiler de kullanılmaktadır.
- -a = (and) ve
- -o = (or) veya
- \! = değil
Örnekler:
- find / -mtime -3 = Kök dizinde (/) 3 günden daha kısa süre önce değiştirilmiş dosyaları bul.
- find /etc -name deneme_* -exec rm -f {} \; = “/ect” dizini altında “deneme_” ile başlayan dosyaları bul ve sil.
- find / -size 95 -o -name network* = Kök dizinde (/) boyutu 95 byte olan veya ismi “network” ile başlayan dosyaları bul.
Aşağıda VMware üzerinde çalışan centos işletim sisteminde bir örnek yapalım. Masa üstünde “testKlasor” isimli dizinde terminal ekran açalım.
1: “ls -l” ile dosyaları ayrıntılarıyla listeleyelim. Çıktıya göre “buyukDosya” 15648401 byte, “kucukDosya” 0 byte büyüklüğündedir.
2: “find /home/nizam/Desktop/testKlasor -size +10 –type f” komutu ile “/home/nizam/Desktop/testKlasor” dizi altında boyutu 10 byte’dan büyük olan (-size +10) ve dosya tipi file olan (-type f) dosyaları göster diyelim. Çıktıda “buyukDosya” isimli dosyayı görebiliriz.
3: “find /home/nizam/Desktop/testKlasor -size -10 –type f” komutu ile “/home/nizam/Desktop/testKlasor” dizi altında boyutu 10 byte’dan küçük olan (-size -10) ve dosya tipi file olan (-type f) dosyaları göster diyelim. Çıktıda “kucukDosya” isimli dosyayı görebiliriz.