zsh'de dosya seçim operatörleri

zsh, dosya seçmek için bash'ten biraz daha gelişmiş operatörlere sahip. Bunlar sayesinde bir defada, bir dizindeki dosyaların tamamına erişip, onlar üzerinde işlemler yapmak mümkün. Burada kısa bazı örnekler vereceğim.

Bir dizindeki tüm dosyalar :: ls *

Bulunduğumuz

: ls **

Bulunduğumuz

: ls */**(.mw-2)

Bulunduğumuz

: ls */**(.Lm+100)

Bulunduğumuz

: ls */**(.R)

/etc

: ls /etc/**(.W)

/etc

: =ls etc/**(.Wmw-1)

zsh'in sağladığı bu gibi seçeneklerin yanında, dosya adını parçalamak da kolay . Misalen dosyanın eklentiden önceki kısmını almak için *(:r) yazıyoruz. Dizindeki jpg dosyaları ImageMagick'in convert programıyla aynı isimli png dosyalara çevirmek şöyle mümkün mesela:

for f in **/*.jpg(.) ; do
   convert ${f:r}.jpg ${f:r}.png
done

Burada anlatılanları find yoluyla yapmak da mümkün ancak çok daha uzun sürebiliyor. Bilhassa dosya adlarını parçalamak, dönüştürmek gibi işlemleri yaparken zsh'in nimetleri çok. Tek satırlık bir operasyonla çok güçlü bazı dönüşümler yapabilmek mümkün.