Toplu CVS katliamı ve xargs
Gezegen’de karşılaştığım bir girdi üzerine xargs’tan bahsededeyim.
Aynı işi yapmanın bir başka yolu:
find . -type d -name CVS | xargs rm -rf
Tek farkı bu komutun 2′den fazla işlem calıştırmaması. Doruk Fişek’in versiyonunda her dizin için bir rm komutu çalışırken, xargs parametre uzunluğunun elverdiği kadar dosya adını tek seferde rm’ye aktaracak, sadece geriye kalan olursa 2. rm’yi çalıştıracak. Tabi isimlerdeki boşluklar için find’a -print0, xargs’a da -0 parametreleri vermek gerekebileceğini aklımızda bulunduralım. Test etmek için komutu şöyle çalıştırabilirsiniz:
find . -type d -name CVS | echo xargs -n 1 rm -rf find . -type d -name CVS | xargs -n 1 rm -rf
Şeklinde çalıştırdığınızda her dosyaya bir rm çalışacaktır. Eğer ki find’daki {} yeteneğine ihtiyaç duyacak olursanız -I parametresi işinizi görebilir.
Bu işi yapmanın, nam-ı diğer CVS’i katletmenin diğer yollarını da birileri yazar belki.

Yorum Yapın