Türkiye'nin en yeni Ultima Online, Counter-Strike, LoL, Dota 2, E-spor oyunları ve daha birçok oyunla ilgili Türkçe oyun haber, bilgi, topluluk platformu. Türkiye'nin en yeni Ultima Online, Counter-Strike, LoL, Dota 2, E-spor oyunları ve daha birçok oyunla ilgili Türkçe oyun haber, bilgi, topluluk platformu.
  • ANASAYFA
  • FORUM
  • DOKÜMAN
  • DOWNLOAD
  • DISCORD
  • İLETİŞİM
   Üye ol    Giriş
    Doküman > İşletim Sistemleri > Linux'de aradiginiz dosyayi bulma yollari

Linux'de aradiginiz dosyayi bulma yollari

  • Noname
  • May 06, 2006
  • 0 Yorumlar
  • 3K Görüntüleme
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.

[email protected]:~# echo $PATH
/usr/local/sbin:/usr/sbin:/sbin: /usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/games
[email protected]:~#

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.

[email protected]:/usr/local/sbin# cd /usr/local/sbin/
[email protected]:/usr/local/sbin# ls
dnssec-keygen* dnssec-signkey* lwresd* named-checkconf* parted*
dnssec-makekeyset* dnssec-signzone* named* named-checkzone* rndc*
[email protected]:/usr/local/sbin#

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

[email protected]:~# /usr/local/sbin/parted

diyebilecegimiz gibi bu dizin PATH'de yer aldigi icin yanlizca

[email protected]:~# parted

diyerek de kullanabilirsiniz.

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

[email protected]:~# which parted
/usr/local/sbin/parted
[email protected]:~#

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.

[email protected]:~# which boyle_program_olmaz
which: no boyle_program_olmaz in (/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin: /usr/bin:/bin)
[email protected]:~#

'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

[email protected]:~# 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

[email protected]:~# 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.

[email protected]:~# 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.

[email protected]:~# find /etc | grep fastboot
/etc/fastboot
[email protected]:~#

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 'turk-php' kelimesi gecen dosya ve
dizinlerin mutlak dizin yollarini ekrana goruntulemek icin kullanacagimiz komutu sizlere sunarak bu
makalemize son veriyoruz.

Üye Ol veya Giriş Yap

Bu içeriğe yorum atmak istiyorsanız hemen üye olun veya giriş yapın.

Yorumlar (0)

Henüz yorum yapılmamış
Sadece kayıtlı kullanıcılar yeni yorum yapabilir.
Beğeni Takipçi Üye Takipçi
Benzer Sayfalar
  • Linux - Pardus 2007 DownLoad + Resimli Kurulum Anlatımı ! Türkçe Linux !

    September 29, 2007

  • PsychoStats[linux]

    May 06, 2005

  • sXe Linux Server 6.0.2.9

    June 24, 2009

  • sXe Linux Server 6.0.2.1

    December 04, 2008

  • sXe Linux Server 5.2.5.1

    January 19, 2008



  • Son Forumlar
  • Sayfalar
  • wilddeath
    Paladin UO 500 TL 1 VS 1 PVP TURNUVASI

    Ultima Online 23 hours önce

  • Venus
    World of UO 17 Şubat'ta Yeniden Başlıyor

    Sunucular 1 weeks önce

  • wilddeath
    Paladin UO

    Sunucular 3 weeks önce

  • Nefrelius
    Yeni karakter isim kontrolü

    Sphere Scripting 3 weeks önce

  • UO Victory
    Şuan oynanacak uzun soluklu server

    Sunucular 1 months önce

  • Erlik UO
    Erlik UO II ServUO - RunUO

    Sunucular 2 months önce

  • beth
    Tc Simülasyonu Uo Server

    Sunucular 2 months önce

  • dealer666
    UO AOS PvP Free Shard

    Sunucular 2 months önce

  • Bütün bir yıl çok çalıştılar, çok fazla mücadele ettiler ve artık sona geldiler.

    ESL One Cologne 2017

    June 30, 2017

  • Activision yetkililerinin yaptığı açıklamaya göre Cod:MW Remastered, Infinite Warfare’den ayrı bir oyun olarak satılmaya başlanacak.

    Call of Duty Modern Warfare Remastered açıklandı!

    June 24, 2017

  • Artık gelenekselleşen Steam mevsim indirimlerinin en sevileninin zamanı geldi kapımıza dayandı.

    Steam Yaz İndirimi 2017 Rehberi

    June 22, 2017

  • Ultima Online için unoffical DLC

    Ultima LandFall

    June 18, 2017

  • Simple Radar - Kullanışlı ve Basit Radar

    June 03, 2017

  • CS:GO FPS Arttırma ile ilgili detaylı bilgilendirici faydalı döküman

    CS:GO FPS Arttırma ile İlgili Herşey

    May 28, 2017

  • Easy Vibrance enhancer v1.3.0.1

    May 09, 2017

  • Vibrance GUI

    March 31, 2017

Menü

ANASAYFA
FORUM
DOKÜMAN
DOWNLOAD
İLETİŞİM
Ideamedia
© 2004 - 2023 Ultima-Strike. Her hakkı saklıdır.