Ana içeriğe geç

Birden Fazla Dosya İle İşlem Yapmak

Terminal kullanmaya alıştıktan sonra genelde çok fazla işi genelde kısa yoldan yapmaya çalışacaksınız. Bunu başarmanın en kolay yollarından biri de aynı anda birden fazla dosya üzerinde çalışmaktır. Diyelim ki birden fazla dosyayı silmek istiyoruz, şimdiye kadar öğrendiğimiz bilgiler ile aşağıdaki yöntemi izleyebiliriz.

$ rm this 
$ rm that
$ rm here
$ rm there

Toplamda dört adet dosya silmek için dört adet komut girdik. Fakat rm komutu(dosya silme komutu) aynı anda birden fazla dosya ismini kullanarak işlem yapabilir.

$ rm here that there this

Bu şekilde tek bir satır komut ile dört adet dosyayı silebiliriz.

Joker Karakterler ve Wildcardlar(Globbing)

Joker karakterler linux terminali üzerinde mümkün olan en az karakterle birden çok dosya üzerinde işlem yapma konusunda yardımımıza yetişir. Shell, yani kabuk bu karakterleri komutların etkilemesini istediğimiz dosyaları belirtmek için kullandığımız işaretler olarak algılar. Bu karakterlere genelde joker karakterler denir çünkü bunlar, kart oyuncularının istediği herhangi bir kartı temsil etmek için kullandığı joker kartlar gibidir.

“*” İşareti

Aşağıdaki şekilde bir dizin hayal edelim,

$ ls
here that there this

Bu dizin içerisindeki bütün dosyaları silmek istiyorsak * wildcard işaretini kullanabiliriz.

$ rm *

Yıldız işareti kendi başına kullanıldığında . ile başlayan gizli dosyalar haricindeki bütün dosyaları ifade eder. Bu nedenden dolayı rm komutuna . işareti ile başlamayan bütün dosyaların ve dizinlerin isimlerini parametre olarak gönderip işlemi gerçekleştirmiş oluruz.

  • işaretini diğer karakterler ile kombine edebiliriz. Hayal ettiğimiz dizinde sadece t harfi ile başlayan dosyaları silmek için bu joker karakteri aşağıdaki gibi kullanabiliriz,
$ ls
here that there this

$ rm t*
$ ls
here

Komutu bu şekilde kullandığımızda Terminal(Kabuk) önce t karakterine baktı, sonra yıldız işareti ile geriye kalanları tamamlayarak dosya silme komutunu çalıştırdı.

Yıldız jokerini genelde belirli bir uzantıya sahip olan dosyaları silmek için kullanırız.

$ rm *.jpg

Yukarıdaki komut uzantısı jpg olan bütün dosyaları silecektir.

“?” İşareti

Soru işareti, yıldız karakterine çok benzer. Aralarındaki tek fark soru işareti sadece bir adet karakterin yerini alır.

$ ls task*****
task  taskA  taskB  taskXY
$ ls task?
taskA  taskB
$ ls task??
taskXY