Linux Sunucuda Dosya Araması Nasıl Yapılır?

linux dosya arama
Linux sunucularda en büyük sorunlardan biri aradığımız dosyayı bulmanın zorluğudur.Bu yazımızda find komutunu dosyaları nasıl kolay bir şekilde bulabileceğinizi detaylı bir şekilde inceledik. Farklı parametreleri ve filtreleri kullanarak sunucunuzdaki dosyaları kolayca bulabilirsiniz. Ayrıca locate komutlarının farklı kullanım türlerini de görebilirsiniz.

Dosya Adıyla Bulma

Dosyaları aramanın en belirgin yolu ismidir.

Dosyayı adı ile bulmak için şunu yazmalısınız:

find -name "dosya_ismi"
Bu arama büyük küçük harf duyarlılığına sahiptir. “Dosya” ile “dosya” kelimeleri birbirinden farklı aramalardır.

Dosyayı ada göre ararken büyük küçük harf duyarlılığını yok saymak için:

find -iname "dosya_ismi"

Türe Göre Bulma

Aradığımız dosya türünü “-type” ile belirtebiliriz. Şu şekilde olmalı:

find- type tür_tanımlayıcı sorgu

Dosya türü için kullanabileceğiniz en yaygın tanımlayıcılar şunlardı:

f : normal dosya
d : dizin
l : simgesel bağlantı
c : karakter cihazları
b : blok cihazları

Sistemdeki tüm karakter cihazlarını bulmak için şu komut çalıştırılabilir:

find / -type c
/dev/parport0
/dev/snd/seq
/dev/snd/timer
/dev/autofs
/dev/cpu/microcode
/dev/vcsa7
/dev/vcs7
/dev/vcsa6
/dev/vcs6
/dev/vcsa5
/dev/vcs5
/dev/vcsa4

. . .

Örneğin “.conf” ile biten tüm dosyaları bulabiliriz:

find / -type f -name "*.conf"
/var/lib/ucf/cache/:etc:rsyslog.d:50-default.conf
/usr/share/base-files/nsswitch.conf
/usr/share/initramfs-tools/event-driven/upstart-jobs/mountall.conf
/usr/share/rsyslog/50-default.conf
/usr/share/adduser/adduser.conf
/usr/share/davfs2/davfs2.conf
/usr/share/debconf/debconf.conf
/usr/share/doc/apt-utils/examples/apt-ftparchive.conf
. . .

Zaman ve Boyuta Göre Filtreleme

find kullanırken sonuçları boyut ve saate göre filtreleyebiliriz.

Boyut

“-Size” parametresi ile boyuta göre görünütüleriz.

Sonuna bir son ek ekliyoruz. Bazı sık kullanılanlar şunlardır:

c : bayt
k : Kilobayt
M : Megabyte
G : Gigabyte’lar
b : 512 baytlık bloklar

50 bayt olan tüm dosyaları şu şekilde bulabilirsiniz:
find / -size 50c

50 bayttan daha küçük dosyalar için formül:

find / -size -50c

700 Megabaytan fazla olan dosyaları bulmak için:

find / -size +700M

Zamana Göre Arama

Sunucular erişim zamanı, değiştirme zamanı ve değişiklik zamanları ile ilgili verileri saklar.

Erişim Zamanı: Bir dosyanın en son okunduğu veya yazıldığı saat.
Değiştirme Zamanı : Dosyanın içeriğinin değiştirildi son zaman.
Değişiklik Zamanı : Dosya’nın inode meta-verileri son değiştirildiği zaman.
Bunlar “-atime”, “-mtime” ve “-ctime” parametreleriyle kullanılabilir. Boyutla yaptığımız gibi, büyük veya küçük belirtmek için artı ve eksi simgeleri kullanılabilir.

Bu parametrenin değeri, kaç gün önce aramak istediğinizi belirtir.

Aşağıdaki örnekleri inceleyelim
Bir gün önce bir değişiklik yapılan dosyalar:

find / -mtime 1

Bir gün önce erişim sağlanan dosyalar:

find / -atime -1

Meta bilgileri en son 3 gün önce değiştirilenler:

find / -ctime +3

Dakika için kullanabileceğimiz bazı parametreler:

find / -mmin -1
son dakikada değiştirilen dosyaları verir.

Find ayrıca karşılaştırmalar yapabilir ve daha yeni olanları görüntüleyebilir:

find / -newer myfile

Locate ile dosyaları bulmak için, şu söz dizimi yeterlidir:

locate query

Çıktıyı filtreleyebilirsiniz.

Yalnızca sorguyu içeren dosyaları görmek için sorguyu kendisine yönlendirecek ve her dosyayı getirmek yerine sadece “basename” araması için “-b” kullanabilirsiniz:

locate -b query

Yer bulma işleminin dosya sisteminde halen var olan sonuçları döndürmesi için (son “updatedb” çağrısı ile “mevcut”
“konum çağrısı arasında kaldırılmayan)” -e “işaretini kullanın:

locate -e query

Konumlandırmanın katalog yaptığı bilgilere ilişkin istatistikleri görmek için “-S” seçeneğini kullanın:

locate -S
Database /var/lib/mlocate/mlocate.db:
3,315 directories
37,228 files
1,504,439 bytes in file names
594,851 bytes used to store database


Bir Cevap Yazın