1.                        

18-) Sıfırdan Temel Linux Eğitimi [Joker Karakterler(wildcards)]

'Dökümanlar' forumunda Al-Farabi tarafından 8 Temmuz 2018 tarihinde açılan konu

  1. Al-Farabi

    Al-Farabi Albay

    Katılım:
    16 Ocak 2016
    Mesaj:
    1,324
    Beğeniler:
    103
    Ödül Puanları:
    63
    Joker Karakterler(wildcards)
    Bu kavram sizlere kesinlikle yabancı değil daha önceki kısımlarda defaatle kullanmış ve joker(wildcard) karakterlerinin az da olsa işlevini görmüştük. Bu kısımda da bu konu hakkında bilgi sahibi olacağız.

    joker (wildcard)
    Linux kullanımında işimizi konsoldan yürüteceğimiz zaman bir komutun tek seferde birden fazla nesneyi etkilemesini yani kapsamasını isteyebiliriz. Örneğin bir dizindeki dosyaların tamamını silmek istiyoruz bu iş için aşağıdaki gibi tüm dosya adlarını komut satırına yazmak çok zahmetli ve gereksiz olacaktır.

    [​IMG]

    Yukarıdaki kullanımın yerine joker karakter(wildcard) desteğini kullanmak bizlere çok fazla avantaj sağlar. Ayrıca gördüğünüzde şaşırmayın, joker karakterler(wildcards) "globbing" olarak da adlandırılmakatadır.

    Bahsi geçen joker karakterler ve kullanım alanları aşağıdaki gibidir;

    * : Anlamı * olan yere herhangi bir şey gelebileceğidir.

    Örneğin "dosya" ismiyle başlayan tüm belgeleri tek seferde silmek için komutu rm dosya* şeklinde kullanabilirim.

    [​IMG]

    Ayrıca bu yıldız (asterix)* işaretinin farklı kullanım şekilleri de var. Farklı kullanımların açıklaması ile devam edelim.

    Herhangi bir komutu, örneğin listeleme işlevinde olan ls komutunu ls dosya* şeklinde kullanırsak komut yıldız (asterix) *işaretinden önce yazmış olduğumuz "dosya" ismi ile başlayanları kapsar.

    [​IMG]

    Aynı şekilde yıldız (asterix) * işaretinden sonra bir ifade belirtirsek de komut o ifade ile bitenleri kapsayacak şekilde çalışır.

    [​IMG]

    ? : Herhangi bir tek karakterle eşleşir.

    Karakterin kullanımına örnek olarak. Diyelim ki dizin içerisinde hem "index_page" hem de "index-page" şeklinde isimlere sahip dosyalarınız var. Yani başlangıç ve bitiş isimleri aynı ancak aradaki işaretler farklı. İşte böyle bir durumda hem _ işaretini hem de - işaretini karşılayacak olan soru işareti ? joker karakterini kullanabiliriz.

    [​IMG]

    Çıktılarda da görüldüğü gibi ? karakteri dosya isimlerinin arasında yer alan - ve _ işaretini de karşılayarak ls -l index?page şeklindeki komut ile çıktıya her ikisini de basmış oldu.

    [] : ? karakterine benzer olmakla birlikte daha çok hedefe odaklı çalışır.

    [] karakterinin kullanımı, iki köşeli parantez arasına ulaşmak istediğiniz hedefteki ayırt edici karakterli yazmak üzerinedir.

    Örnek olaması açısında "dosya" isimli belgelerden sadece sonunda 2,3,4 olanları kapsayacak bir komut olması için konsola ls -l [234] komutunu verdim.

    [​IMG]

    Bir örnek daha verelim.

    [Dd]osya[Aa]dı şeklinde bir belirtme; DosyaAdı, Dosyaadı, dosyaAdı, dosyaadı şeklindeki bütün isimleri kapsayacaktır. Bu sayede ilgili dosya için küçük büyük harf kombinasyonu yakalanmış olur.

    [​IMG]

    Ayrıca kullanım şekillerine çok fazla örnek verilebilir ancak burada birkaç örnek daha vererek keşfi size bırakıyorum.

    Not : Burada belirtilen x y z temsili değerleri ifade etmektedir !

    [0-9] : 0'dan 9'a kadar olan rakamları kapsar.

    [​IMG]

    [x,y,z] : belirtilen değerlerle eşleşenleri basar.

    [​IMG]

    [x-z] : x ile z değerleri arasındaki karakterlerle eşleşir.

    [​IMG]

    [xyz] : belirtilen değerlerle eşleşenleri basar.

    [​IMG]

    [!xyz] : Belirtilen karakterlerin dışındakileri ile eşlenir.

    [​IMG]

    [!x-z] : Verilen x ile z değeri arasındakiler haricindeki karakterler ile eşlenir.

    [​IMG]

    Temel ve en çok başvurulan joker karakterler bu şekildedir. Sizler de joker karaketerler sayesinde konsoldan çalışırken oldukça pratik şekilde işlemlerinizi yerine getirebilirsiniz. Konuyu daha iyi anlamak adına mutlaka ve mutlaka kendiniz de örnek denemeler yapın.

    Dokümantasyon Kaynağı
    [​IMG]
    Her türlü soru, öneri veya görüşleriniz için bana bu adresten geri bildirimde bulunabilirsiniz.

    Videolu eğitimi incelemek için buraya tıklayın.
     
    MrX bunu beğendi.

Bu Sayfayı Paylaş

Share