zsh’de dosya seçim operatörleri

Author:Emre Şahin

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.