Xargs Komutu Nasıl Kullanılır
Xargs komutu Unix/Linux sistemlerinde standart girdi kullanarak komut oluşturmak ve çalıştırmak için kullanılan güçlü bir yardımcı programdır. Bir komuttan veya dosyadan girdi alır ve bunu başka bir komuta argüman olarak iletir. Bu, özellikle diğer komutlar tarafından işlenmesi gereken çok sayıda dosya, argüman veya veri işlenirken kullanışlıdır.
Bu makalede, xargs ‘ın nasıl çalıştığını, pratik kullanım durumlarını ve farklı senaryolarda nasıl uygulanacağını inceleyeceğiz.
Xargs’ın Temel Kullanımı
Xargs komutu, standart girdiden (stdin) genellikle boşluk veya satırsonu ile ayrılmış öğeleri okur ve bunları belirtilen komuta argüman olarak aktarır. Xargs ‘ın en temel kullanımı şu şekildedir:
Örneğin, find ve rm kullanarak bir dizindeki tüm .txt dosyalarını silmek istiyorsanız, şunu kullanabilirsiniz:
Burada, find.txt dosyalarının bir listesini oluşturur ve xargs bu listeyi rm komutuna argüman olarak geçirerek dosyaları siler.
Xargs Kullanımına İlişkin Pratik Örnekler
1. Komutlara Bağımsız Değişken Geçirme
Xargs ‘ın en yaygın kullanımı, bir komuta geniş bir argüman listesi iletmektir. Örneğin, dokunma özelliğini kullanarak birden fazla dosya oluşturabilirsiniz:
Bu komut üç dosya oluşturur: dosya1.txt, dosya2. txt ve dosya3 . txt.
2. Find Tarafından Bulunan Dosyaları Silme
Find ve xargs ‘ın güçlü bir kombinasyonu, dosyaları belirli kriterlere göre silmenize olanak tanır. Örneğin, bir dizindeki tüm .log dosyalarını bulmak ve silmek için:
Bu, tüm .log dosyalarını bulur ve sonra onları siler. Xargs olmadan, bu işlemi manuel olarak gerçekleştirmeniz veya daha karmaşık yapılar kullanmanız gerekir.
3. Argüman Sayısının Sınırlandırılması
Varsayılan olarak, xargs komuta mümkün olduğunca çok sayıda argümanı tek seferde geçirir. Ancak, -n seçeneği ile geçirilen argüman sayısını sınırlayabilirsiniz. Örneğin:
Çıktı:
Bu, echo ‘yu komut yürütme başına iki argümanla sınırlar ve girdiyi daha küçük parçalara böler.
4. Komut Yürütmeyi Onaylama
Bir komutu etkileşimli olarak çalıştırmak ve her argüman için komutu çalıştırmadan önce onay istemek istiyorsanız -p seçeneğini kullanın:
Bu, her dosyayı silmeden önce onay isteyecektir.
5. Özel Karakterler İçeren Dosyaların İşlenmesi
Bazen dosya adları veya veriler boşluk veya özel karakterler içerebilir. Bu gibi durumlarda, girdinin doğru şekilde işlendiğinden emin olmak için find ‘u -print0 seçeneğiyle ve xargs ‘ı -0 seçeneğiyle kullanmak daha iyidir:
Bu, boşluk veya özel karakterler içeren dosya adlarının rm komutuna doğru şekilde aktarılmasını sağlar.
6. Xargs’ı grep ile kullanma
Birden fazla dosya içinde bir desen aramak için xargs ile grep ‘i birleştirebilirsiniz. Örneğin:
Bu komut geçerli dizindeki tüm
.txt
7. Xargs ile Birden Fazla Komutu Birleştirme
Birden fazla komut çalıştırmak için xargs kullanabilirsiniz. Örneğin, bir dizi dosyayı hem listelemek hem de silmek istiyorsanız:
Burada, tee .tmp dosyalarının listesini terminale (/dev/tty aracılığıyla) çıktı olarak verir ve xargs daha sonra bu listeyi silinmesi için rm komutuna aktarır.
Xargs ile Ortak Seçenekler
- –n <sayı>: Yürütme başına komuta aktarılan bağımsız değişken sayısını sınırlar. Örneğin, xargs -n 2 bir seferde iki argüman geçirir.
- –0: Tipik olarak -print0 kullanılarak find komutundan gelen null-terminated girdiyi işlemek için kullanılır. Boşluklu veya özel karakterli dosya adlarını işlemek için kullanışlıdır.
- –I {}: Stdin’den gelen argümanlarla {} oluşumlarını değiştirin. Bu, argümanları komutun sadece sonuna değil, belirli bir noktasına yerleştirmek istediğinizde kullanışlıdır.
- –p: Komutu çalıştırmadan önce kullanıcıdan onay ister.
- –t: Komutu çalıştırmadan önce terminale yazdırır, hata ayıklama için kullanışlıdır.
Neden xargs Kullanılmalı?
- Verimlilik: Çok sayıda dosya veya girdiyle uğraşırken, xargs argümanları gruplayarak birden fazla komut çalıştırmanın ek yükünü azaltmaya yardımcı olur.
- Esneklik: xargs, komutları bir boru hattında birleştirmenize ve aralarında sorunsuz bir şekilde veri aktarmanıza olanak tanıyarak esneklik sağlar.
- Otomasyon: Kabuk komut dosyaları yazarken, xargs birçok girdinin işlenmesini gerektiren görevleri otomatikleştirmek için gereklidir. Dosya listelerini, bağımsız değişken listelerini ve veri akışlarını yönetmeyi basit ve verimli hale getirir.
Sonuç
Xargs komutu, Unix/Linux sistemlerindeki diğer komutlarla etkileşim kurma şeklinizi geliştiren güçlü bir araçtır. İster dosya yönetimi ile uğraşın, ister veri akışlarını işleyin ya da tekrarlayan görevleri yerine getirin, xargs süreci kolaylaştırır. Seçeneklerinden yararlanmayı öğrenerek ve find, grep veya rm gibi diğer komutlarla birleştirerek terminaldeki verimliliğinizi büyük ölçüde artırabilirsiniz.
Daha önce xargs kullanmadıysanız, şimdi onu denemek ve komut satırı işlemlerinizi nasıl basitleştirebileceğini görmek için mükemmel bir zaman.