Site, Server Genel » Makaleler

Linux'de aradiginiz dosyayi bulma yollari.

Geri git   WHM cPanel Destek Platformu » Site, Sunucu Sorunlarınız ve Çözümleri » Site, Server Genel » Makaleler
Kayıt ol Yardım Üye Listesi Ajanda Forumları Okundu Kabul Et
 

Cevapla
 
LinkBack Seçenekler Stil
  #1 (permalink)  
Alt 21.06.07, 12:46 AM
CaLViN - ait Kullanıcı Resmi (Avatar)
Sevgi güçtür.
 
Üyelik tarihi: Apr 2007
Nerden: Outta nation
Yaş: 26
Mesajlar: 1.459
Tecrübe Puanı: 100000
CaLViN has a reputation beyond reputeCaLViN has a reputation beyond reputeCaLViN has a reputation beyond reputeCaLViN has a reputation beyond reputeCaLViN has a reputation beyond reputeCaLViN has a reputation beyond reputeCaLViN has a reputation beyond reputeCaLViN has a reputation beyond reputeCaLViN has a reputation beyond reputeCaLViN has a reputation beyond reputeCaLViN has a reputation beyond repute
Ders Linux'de aradiginiz dosyayi bulma yollari.

Hepimizin basina mutlaka gelmistir.
Sabit diskimizde bir dosya oldugunu biliriz fakat nerede oldugunu bir turlu hatirlayamayiz.

En basit olarak yapabilecegimiz sey tek tek dizinleri dolasip 'ls' komutuyla dosya ve dizinleri
listeleyerek aradigimiz dosyanin diskte var olup olmadigini arastirmaktir. Eger dosyanin nerede
olduguna dair cok iyi bir tahmin yapabileceksek bu yontem ise yarayabilir. Ancak bu makalemizin
asil konusu diskin kiyisinda kosesinde her yerinde olabilecek bir dosyanin bulunmasidir.

which komutu:


'which' komutu bir "program" (executable) dosyasinin PATH degiskeni ile belirtilen dizinlerden
birinde olup olmadigini ve var ise hangi dizinde oldugunu bulmaya yarar.
Oncelikle PATH degiskeninden biraz bahsedelim. Bu degisken genellikle /etc/profile veya benzeri bir
konfigurasyon dosyasinda belirlenir. Genellikle yeni kurulmus bir Linux sisteminde /usr/bin/ ,
/usr/sbin, /usr/local/bin gibi program dosyalarinin cokca bulundugu dizinlere isaret eden bu cevre
degiskeni bu programlarin butun dizin adlari verilmeden sadece adlarini yazarak calistirabilmeyi
saglar.

root@danzka:~# echo $PATH
/usr/local/sbin:/usr/sbin:/sbin: /usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/games
root@danzka:~#

Yukaridaki ciktida benim makinemdeki PATH degiskeninin icerigini goruyoruz. Gordugunuz gibi
eklenecek her dizin birbirinden ' : ' (iki nokta ust uste) ile ayriliyor. Bu sekilde istediginiz
kadar dizini PATH'e eklemeniz mumkun. (/etc/profile veya benzer dosya icinde)
Mesela yukaridaki ornekte /usr/local/sbin dizini PATH dahilindeki dizinlerden biri olarak
gorunuyor. Bu sayede o dizin altindaki butun programlar sadece adi yazilarak calistirilabilir.
PATH'in bir baska kullanisli yani da BASH shell'inde (ve bazi baska shell'lerde) bulunan
<TAB> tusu ile program adi tamamlama ozelliginde kullanilacak dizinleri belirlemesidir.
Simdi benim /usr/local/sbin dizinime bir goz atalim.

root@danzka:/usr/local/sbin# cd /usr/local/sbin/
root@danzka:/usr/local/sbin# ls
dnssec-keygen* dnssec-signkey* lwresd* named-checkconf* parted*
dnssec-makekeyset* dnssec-signzone* named* named-checkzone* rndc*
root@danzka:/usr/local/sbin#

Bu dizindeki programlardan 'parted' (GNU'nun disk partisyon programi) i calistirmak icin.

root@danzka:~# /usr/local/sbin/parted

diyebilecegimiz gibi bu dizin PATH'de yer aldigi icin yanlizca

root@danzka:~# parted

diyerek de kullanabilirsiniz.

PATH kavramini uzun uzun acikladiktan sonra asil konumuz olan 'which' komutuna geri donelim.

root@danzka:~# which parted
/usr/local/sbin/parted
root@danzka:~#

Yukaridaki ornekte gordugumuz gibi eger yanlizca 'parted' yazarak bu programi calistirabiliyorsak,
her hangi bir sekilde bu programin nerede yer aldigini bulmak istedigimizde which komutunu
kullanabiliriz.
Eger aradigimiz program PATH icinde degilse asagidaki ornekteki gibi bir hata mesajiyla
karsilasacagiz.

root@danzka:~# which boyle_program_olmaz
which: no boyle_program_olmaz in (/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin: /usr/bin:/bin)
root@danzka:~#

'which' komutu kisaca bize butun PATH'e baktigi halde boyle bir program bulamadigini soyluyor.

Bu komutun baska can alici bir kullanisi daha var. Diyelim ki sisteminizde calisan 'bind' adli
programin yeni bir versiyonunu yuklediniz. Fakat eski versiyonu ortadan kaldirmayi unuttunuz. Bu
tarz bir sistemde

root@danzka:~# bind

yazdiginizda bu programin hangi versiyonun calistigini bulmak zor olacaktir.
'which' komutuyla bu sekilde hangi dizindeki 'bind' in calistirildigini bulup, yanlis olmasi
halinde yeni versiyon ile yer degistirebilirsiniz.
Gordugunuz gibi kisitli bir komut olan 'which' in bile ise yaradigi bir cok durum var.

locate komutu:


Simdi daha genis kapsamli olan 'locate' komutundan bahsedelim. Turkce tam karsiligi
'konuslandirmak' olan bu komut aynen bunu gerceklestirir.
Kullanim sekli

root@danzka:~# locate aranan_kelime

olan bu komut dizin veya dosya adinda 'aranan_kelime' gecen her dizin ve dosyayi ekrana basar. Bu
yuzden ekran ciktisi buyuk ihtimalle cok uzun olacak olan bu komut 'more' komutuyla birlikte
kullanildiginda dikkatli bir inceleme ile bize aradigimiz bir dosyayi bulmakta cok yardimci
olabilecek bir komuttur.

root@danzka:~# locate aranan_kelime | more

Bu sekilde ekran ciktisi bir ekrani doldurup size <enter> (satir satir ilerleme) veya
<bosluk> (sayfa sayfa ilerleme) tuslarina basana kadar ekranda kalacaktir.

Tabi ki 'diskde_sadece_bir_tane_var.doc' gibi az rastlanacak bir dosya ararken sayfanin hizla akip
gitmesi gibi bir sey soz konusu degildir.

Bu komut ile * (asteriks) ve ? (soru isareti) gibi meta karakterleri kullanarak da dosya aramak
mumkundur.

Locate komutunun aradiginiz dosyayi hizla buldugunu farkedeceksiniz. Bu sabit diskinizin birden
bire daha hizli calismaya baslamasindan kaynaklanmiyor. Bu hizin arkasinda cok basit bir veritabani
prensibi yatar. 'locate' komutu ilk calistirildiginda sizden dosya isimlerini saklamak icin
kullanacagi veritabanini olusturmanizi isteyecektir. Veritabani olusturulma islemi sirasinda
sisteminizde o anda bulunan butun dosyalar indexlenip veritabani formatinda bir dosyaya
yazilacaktir. Bundan sonra yapacaginiz 'locate' sorgularinin hepsi diskten gercek zamanli bir arama
yaparak degil, bu indexlenmis veritabanindan yapilacaktir. Boylece olaganustu hizli bir sekilde
aradiginiz dosyaya ulasabileceksiniz.

Yanliz bu calisma prensibinde sizin de tahmin edebileceginiz bir acik bulunmaktadir. 'locate'
komutunun veritabaninda , bu veritabani ilk olusturulduktan sonra yaratilan dosyalar indexlenmemis
olacaktir. Ayni sekilde veritabani yaratildiktan sonra sistem'den silinen veya yeri degisen
dosyalar da halen sistemdeymis gibi gorunecektir.
Bu yuzden yanlis sonuclar almamak icin 'locate' veritabani periyodik olarak 'updatedb' komutu ile
guncellenmelidir. Bu cok zaman alan ve diski yavaslatan bir islem oldugundan 'cron' yardimi ile
sistemin az kullanildigi bir zamanda otomatik olarak yapilmalidir.

'find' komutu:

Bu komut 'locate' komutuna benzer olarak calisir. Fakat bir veritabanindan yararlanmak yerine
genelde gercek zamanli olarak diskin belirtilen kismini tarayarak sonuca ulasir. Bu ozelligi
acisindan verdigi sonuclar her zaman guvenilirdir. Bunun yaninda ayni sebepten son derece yavas
calisan ve sistem kaynaklarini uzun sure mesgul eden bir programdir. Ozellikle ard arda birden
fazla sorgu yapacaginiz hallerde 'find' komutunu kullanmak yerine once 'updatedb' ile 'locate'
veritabanini guncelleyip sonra 'locate' komutu ile sonuca hizla ulasmak daha verimli olabilir.

Bu komutun kullanisi ise asagidaki gibidir.

root@danzka:~# find /etc | grep fastboot
/etc/fastboot
root@danzka:~#

Yukaridaki kullanista 'find' a /etc dizini altindaki butun dosya ve dizinleri arayip , grep
sayesinde icinde 'fastboot' kelimesi gecen butun dosya ve dizin adlarini ekrana goruntulemesini
soyluyoruz. Bu ornegimizde (kasitli olarak) sadece bir sonuc geri dondu. Komutun ciktisi gordugunuz
gibi icinde aradigimiz kelime gecen dosya veya dizinin mutlak dizin yolu.
'find' komutu direk olarak kullanildiginda 'ls' ye benzer olarak aradigimiz kelime gecen butun
dosya ve dizinleri listeleyecegi icin pratikte 'grep' komutunu kullanarak sadece ilgilendigimiz
kelimenin gosterilmesini saglamak daha kullanislidir.

Butun sabit diskiniz icinde gercek zamanli olarak icinde 'php' kelimesi gecen dosya ve
dizinlerin mutlak dizin yollarini ekrana goruntulemek icin kullanacagimiz komutu sizlere sunarak bu
makalemize son veriyoruz.

root@danzka:~# find / | grep php
__________________
1.)Lütfen destek talebinde bulunmak için msn messenger üzerinden iletişime geçmeyiniz.
2.)Ücretsiz destek almak için forum sayfalarımızı kullanmanız aynı sorunu yaşayan diğer üyelerin cevaplara en kısa sürede ulaşabilmesi ve sizlere yardımcı olmak isteyen bizlerin ve diğer üyelerimizin zaman kazanmaları açısından çok önemlidir.
3.)Forumlarımızda sorunlarınızı anlatırken mümkün olduğunca çok detay vermeniz en kısa sürede sorununuza çözüm bulmanız açısından mühimdir.

Daha çok öğrenmek ve öğretmek dileğiyle..
Sevgiler..
The Platform.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post!
Alıntı ile Cevapla
  #2 (permalink)  
Alt 18.07.07, 03:15 PM
Banned
 
Üyelik tarihi: Jul 2007
Mesajlar: 4
Tecrübe Puanı: 0
HostCin is on a distinguished road
Alıntı:
HostBank´isimli üyeden Alıntı Mesajı göster

locate komutu:


Simdi daha genis kapsamli olan 'locate' komutundan bahsedelim. Turkce tam karsiligi
'konuslandirmak' olan bu komut aynen bunu gerceklestirir.
Kullanim sekli

root@danzka:~# locate aranan_kelime

olan bu komut dizin veya dosya adinda 'aranan_kelime' gecen her dizin ve dosyayi ekrana basar. Bu
yuzden ekran ciktisi buyuk ihtimalle cok uzun olacak olan bu komut 'more' komutuyla birlikte
kullanildiginda dikkatli bir inceleme ile bize aradigimiz bir dosyayi bulmakta cok yardimci
olabilecek bir komuttur.

root@danzka:~# locate aranan_kelime | more

Bu sekilde ekran ciktisi bir ekrani doldurup size <enter> (satir satir ilerleme) veya
<bosluk> (sayfa sayfa ilerleme) tuslarina basana kadar ekranda kalacaktir.

Tabi ki 'diskde_sadece_bir_tane_var.doc' gibi az rastlanacak bir dosya ararken sayfanin hizla akip
gitmesi gibi bir sey soz konusu degildir.

Bu komut ile * (asteriks) ve ? (soru isareti) gibi meta karakterleri kullanarak da dosya aramak
mumkundur.

Locate komutunun aradiginiz dosyayi hizla buldugunu farkedeceksiniz. Bu sabit diskinizin birden
bire daha hizli calismaya baslamasindan kaynaklanmiyor. Bu hizin arkasinda cok basit bir veritabani
prensibi yatar. 'locate' komutu ilk calistirildiginda sizden dosya isimlerini saklamak icin
kullanacagi veritabanini olusturmanizi isteyecektir. Veritabani olusturulma islemi sirasinda
sisteminizde o anda bulunan butun dosyalar indexlenip veritabani formatinda bir dosyaya
yazilacaktir. Bundan sonra yapacaginiz 'locate' sorgularinin hepsi diskten gercek zamanli bir arama
yaparak degil, bu indexlenmis veritabanindan yapilacaktir. Boylece olaganustu hizli bir sekilde
aradiginiz dosyaya ulasabileceksiniz.

Yanliz bu calisma prensibinde sizin de tahmin edebileceginiz bir acik bulunmaktadir. 'locate'
komutunun veritabaninda , bu veritabani ilk olusturulduktan sonra yaratilan dosyalar indexlenmemis
olacaktir. Ayni sekilde veritabani yaratildiktan sonra sistem'den silinen veya yeri degisen
dosyalar da halen sistemdeymis gibi gorunecektir.
Bu yuzden yanlis sonuclar almamak icin 'locate' veritabani periyodik olarak 'updatedb' komutu ile
guncellenmelidir. Bu cok zaman alan ve diski yavaslatan bir islem oldugundan 'cron' yardimi ile
sistemin az kullanildigi bir zamanda otomatik olarak yapilmalidir.
işlem öncesinde locate -u çekmek gerekmez mi hocam ?
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post!
Alıntı ile Cevapla
  #3 (permalink)  
Alt 18.07.07, 03:22 PM
CaLViN - ait Kullanıcı Resmi (Avatar)
Sevgi güçtür.
 
Üyelik tarihi: Apr 2007
Nerden: Outta nation
Yaş: 26
Mesajlar: 1.459
Tecrübe Puanı: 100000
CaLViN has a reputation beyond reputeCaLViN has a reputation beyond reputeCaLViN has a reputation beyond reputeCaLViN has a reputation beyond reputeCaLViN has a reputation beyond reputeCaLViN has a reputation beyond reputeCaLViN has a reputation beyond reputeCaLViN has a reputation beyond reputeCaLViN has a reputation beyond reputeCaLViN has a reputation beyond reputeCaLViN has a reputation beyond repute
tabiki.yazının sonunda da bu belirtilmiş.aramadan önce güncellerseniz daha doğru sonuçlara ulaşırsınız.
__________________
1.)Lütfen destek talebinde bulunmak için msn messenger üzerinden iletişime geçmeyiniz.
2.)Ücretsiz destek almak için forum sayfalarımızı kullanmanız aynı sorunu yaşayan diğer üyelerin cevaplara en kısa sürede ulaşabilmesi ve sizlere yardımcı olmak isteyen bizlerin ve diğer üyelerimizin zaman kazanmaları açısından çok önemlidir.
3.)Forumlarımızda sorunlarınızı anlatırken mümkün olduğunca çok detay vermeniz en kısa sürede sorununuza çözüm bulmanız açısından mühimdir.

Daha çok öğrenmek ve öğretmek dileğiyle..
Sevgiler..
The Platform.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post!
Alıntı ile Cevapla
  #4 (permalink)  
Alt 18.07.07, 05:21 PM
sinangunay - ait Kullanıcı Resmi (Avatar)
FULL DESTEK SUNUCULAR
 
Üyelik tarihi: Jul 2007
Nerden: biLi biLi boP
Yaş: 27
Mesajlar: 1.621
Tecrübe Puanı: 1073
sinangunay has a reputation beyond reputesinangunay has a reputation beyond reputesinangunay has a reputation beyond reputesinangunay has a reputation beyond reputesinangunay has a reputation beyond reputesinangunay has a reputation beyond reputesinangunay has a reputation beyond reputesinangunay has a reputation beyond reputesinangunay has a reputation beyond reputesinangunay has a reputation beyond reputesinangunay has a reputation beyond repute
Bu komutlardan size tavsiye edebileceğim en kullanışlı olanları söyleyeyim,

locate isim
whereis isim

whereis bana göre daha kullanışlı.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post!
Alıntı ile Cevapla
  #5 (permalink)  
Alt 16.11.07, 01:34 PM
Banned
 
Üyelik tarihi: Jul 2007
Mesajlar: 4
Tecrübe Puanı: 0
HostCin is on a distinguished road
find hocam şaşmaz

örnekğin bit shell tarayıcısının bulmadıgı bir shell i ben find le buluyorum

Kod:
find /home/  -name "*".php  -type f -print0 | xargs -0 grep http://sniper-sa.com
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post!
Alıntı ile Cevapla
  #6 (permalink)  
Alt 19.04.08, 11:45 AM
Sempron
 
Üyelik tarihi: Apr 2008
Mesajlar: 29
Tecrübe Puanı: 0
doncamillo is on a distinguished road
peki bulduklarını sildirmek istiyorum. Find and destroy

Boyle bir komut mümkün mü?

Yani home/ altında tüm müşterileirmin public_html kulasorlerinde istemediğim bir virus dosyası var adı sanı belli. Bunları buluyorum ama tek tek silmek zor oluyor. bunları topluca silebilirmiyiz

Şimdiden teşekkürler
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post!
Alıntı ile Cevapla
  #7 (permalink)  
Alt 21.04.08, 10:57 AM
Sempron
 
Üyelik tarihi: Apr 2008
Mesajlar: 29
Tecrübe Puanı: 0
doncamillo is on a distinguished road
Buldum

find / -name dosya.html -type f -ls -exec rm -f {} \;

komutu ile bulunan dosyaları silebiliyormuşuz. Henuz -trpe f -ls -exec komutlaırnın işlevini tam anlamasam da komut işe yarıyor.

Şimdi merak ettiğim şey şu html uzantılı dosyaları aramak istiyorum ama kaynak kodunda geçen bir komutu olanları buldurmak mümkün müdür.

Yani içinde, kaynak kodunda XXX geçen tüm html dosyalarını aratabilirmiyim? Yoksa şansımı çok mu zorluyorum
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post!
Alıntı ile Cevapla
  #8 (permalink)  
Alt 21.04.08, 02:28 PM
sinangunay - ait Kullanıcı Resmi (Avatar)
FULL DESTEK SUNUCULAR
 
Üyelik tarihi: Jul 2007
Nerden: biLi biLi boP
Yaş: 27
Mesajlar: 1.621
Tecrübe Puanı: 1073
sinangunay has a reputation beyond reputesinangunay has a reputation beyond reputesinangunay has a reputation beyond reputesinangunay has a reputation beyond reputesinangunay has a reputation beyond reputesinangunay has a reputation beyond reputesinangunay has a reputation beyond reputesinangunay has a reputation beyond reputesinangunay has a reputation beyond reputesinangunay has a reputation beyond reputesinangunay has a reputation beyond repute
type = tip
ls = listele
exec = çalıştır

şeklinde gidiyor..
__________________
KROYUM AMMA SİSTEM BİLGİSİ BENDE
KAMYON ÇEKER 10-20 TON, GÖNLÜM ÇEKER PARİS HİLTON

RAHMETLİ DE HACKLERDİ
TEK RAKİBİM SUN MICROSYSTEMS
SOLLAMA BENİ, FORMATLARIM SENİ


HAZİRAN AYININ 2SİNE KADAR SINAVLAR NEDENİYLE YOKUM YARDIMCI OLAMADIĞIM İÇİN ÖZÜR DİLERİM

-----------------------------------------------------------------------------------------

>> LÜTFEN ÜCRETSİZ DESTEK TALEP ETMEK İÇİN MSN ADRESLERİMİZİ EKLEMEYİNİZ. HER TÜRLÜ ÜCRETSİZ DESTEK İÇİN FORUMLARIMIZI KULLANINIZ. TEŞEKKÜRLER <<
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post!
Alıntı ile Cevapla
  #9 (permalink)  
Alt 21.04.08, 03:49 PM
Sempron
 
Üyelik tarihi: Apr 2008
Mesajlar: 29
Tecrübe Puanı: 0
doncamillo is on a distinguished road
find / -name dosyaadı
şeklinde aradığımızda zaten listeliyor ben sadece ekstradan -type f -ls komutları ne işe yarıyor onu merak ediyorum.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post!
Alıntı ile Cevapla
  #10 (permalink)  
Alt 22.04.08, 03:05 PM
Banned
 
Üyelik tarihi: Mar 2008
Mesajlar: 31
Tecrübe Puanı: 0
RackleSS is on a distinguished road
Karmaşık işler bunlar hocam sen yine az çok anlıyorsun
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post!
Alıntı ile Cevapla
Cevapla



Seçenekler
Stil

Yetkileriniz
Yeni Mesaj yazma yetkiniz aktif değil dir.
Mesajlara Cevap verme yetkiniz aktif değil dir.
Eklenti ekleme yetkiniz aktif değil dir.
Kendi Mesajınızı değiştirme yetkiniz aktif değil dir.

Smileler Açık
[IMG] Kodları Açık
HTML-KodlarıKapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık