Save 15% on All Hosting Services

Becerilerini test et ve herhangi bir hosting planında İndirim kazan

Kodu kullanın: Skills Başlayın
Bölüm
Linux

Linux’ta `xargs` Komutu Nasıl Kullanılır: Eksiksiz Bir Kılavuz

xargs komutu, Unix/Linux sistemlerinde mevcut olan en güçlü ve çok yönlü araçlardan biridir. Standart girdiden argümanlar okuyarak komutlar oluşturur ve çalıştırır; böylece çıktı üreten komutlar ile argüman tüketen komutlar arasındaki boşluğu etkin biçimde kapatır. Binlerce dosyayı yönetiyor, tekrarlayan kabuk görevlerini otomatikleştiriyor veya karmaşık komut ardışık düzenleri oluşturuyor olun, xargs konusunda uzmanlaşmak terminaldeki verimliliğinizi önemli ölçüde artıracaktır.

Bu kapsamlı kılavuzda, xargs‘ın arka planda nasıl çalıştığını ele alacak, pratik gerçek dünya örneklerini inceleyecek, tüm temel seçenekleri açıklayacak ve yaygın tuzaklardan nasıl kaçınacağınızı göstereceğiz.

xargs Komutu Nedir ve Nasıl Çalışır?

Özünde, xargs standart girdiden (stdin) — genellikle boşluk veya satır sonlarıyla ayrılmış — öğeler okur ve bunları belirtilen bir komuta argüman olarak iletir. Bu kritik öneme sahiptir; çünkü pek çok Unix komutu, iletilen girdiyi doğrudan argüman olarak kabul etmez; komut satırında argüman bekler. xargs bu sorunu zarif bir şekilde çözer.

Temel sözdizimi şöyledir:

command | xargs [options] another_command

Örneğin, geçerli dizindeki tüm .txt dosyalarını bulup silmek için:

find . -name "*.txt" | xargs rm

Burada find, .txt dosya adlarının bir listesini oluşturur ve stdout’a yazar. xargs bu listeyi okur ve dosya adlarını rm‘e argüman olarak iletir; bu da dosyaları siler — hepsi tek, verimli bir işlemde.

> Neden sadece rm $(find . -name "*.txt") kullanmıyorsunuz? Komut değiştirme, argüman listesi son derece uzun olduğunda veya dosya adları özel karakterler içerdiğinde başarısız olabilir ya da beklenmedik şekilde davranabilir. xargs her iki senaryoyu da daha güvenli ve verimli biçimde ele alır.

xargs‘ın Temel Kullanımı

Gelişmiş örneklere geçmeden önce, temel çağırma kalıbını net bir şekilde anlayalım.

Basit Bir Argüman Listesi İletme

echo "file1.txt file2.txt file3.txt" | xargs touch

Bu komut, üç adı touch‘e argüman olarak ileterek — file1.txt, file2.txt ve file3.txt — üç dosya oluşturur. xargs olmadan, her dosya adını manuel olarak yazmanız ya da bir döngü yazmanız gerekirdi.

xargs‘ın Ne Çalıştıracağını Doğrulama

Potansiyel olarak yıkıcı bir komutu çalıştırmadan önce, oluşturulan komutu çalıştırmadan önce stderr’e yazdırmak için -t bayrağını kullanın:

echo "file1.txt file2.txt" | xargs -t rm

Çıktı:

rm file1.txt file2.txt

Bu, ardışık düzenleri çalıştırmaya karar vermeden önce hata ayıklamak için son derece değerlidir.

xargs Kullanımına İlişkin Pratik Örnekler

1. find Tarafından Bulunan Dosyaları Silme

xargs‘ın en yaygın ve güçlü kullanımlarından biri, belirli kriterlere uyan dosyaları silmek için find ile birleştirmektir:

find /var/log -name "*.log" -mtime +30 | xargs rm

Bu, /var/log içinde 30 günden eski tüm .log dosyalarını bulur ve siler. Bu tür otomatik temizlik, disk kullanımını kontrol altında tutmak için düzenli olarak uğraşan VPS Hosting veya Dedicated Sunucular çalıştıran yöneticiler için sunucu bakımında vazgeçilmezdir.

2. -n ile Çalıştırma Başına Argüman Sayısını Sınırlama

Varsayılan olarak, xargs tek bir çağrıda komuta mümkün olduğunca çok argüman iletir. -n seçeneği, çalıştırma başına kaç argüman iletileceğini tam olarak kontrol etmenizi sağlar:

echo "one two three four five six" | xargs -n 2 echo

Çıktı:

one two
three four
five six

Bu, özellikle bir komutun kabul edebileceği argüman sayısında bir sınır olduğunda veya öğeleri kontrollü gruplar halinde işlemek istediğinizde kullanışlıdır.

3. -0 Kullanarak Boşluk ve Özel Karakter İçeren Dosya Adlarını İşleme

Bu, xargs kullanırken en önemli güvenlik uygulamalarından biridir. Boşluk, satır sonu veya diğer özel karakterler içeren dosya adları, basit ardışık düzenleri bozar. Çözüm, find‘ı -print0 ile (dosya adlarını satır sonları yerine null baytlarla ayırır) ve xargs‘ı -0 ile birlikte kullanmaktır:

find . -name "*.txt" -print0 | xargs -0 rm

Null bayt (

Güvenlik Linux Windows
İşletim sistemleri Linux
Linux

Save 15% on All Hosting Services

Becerilerini test et ve herhangi bir hosting planında İndirim kazan

Kodu kullanın: Skills Başlayın
Bilgiye hızlı erişim
Bilgiye hızlı erişim

Zamandan tasarruf edin ve sorunuza hızlı bir yanıt alın

Sorunları kendiniz çözün
Sorunları kendiniz çözün

Bilgi tabanı, teknik görevleri kendi başınıza halletmenize olanak tanıyan ayrıntılı eğitimler içerir.

Becerilerin geliştirilmesi
Becerilerin geliştirilmesi

Bilgi tabanını kullanarak, web barındırma ve ilgili konular hakkındaki bilgilerinizi genişletirsiniz

Çizimler ve diyagramlar
Çizimler ve diyagramlar

Birçok makaleye, karmaşık süreçlerin ve ayarların anlaşılmasını kolaylaştıran resimler ve diyagramlar eşlik etmektedir.

Yararlı Püf Noktaları
Yararlı Püf Noktaları

Site veya web uygulamanızın performansını artırmak için faydalı ipuçları ve püf noktaları bulacaksınız.

Verilen konuların uygunluğu
Verilen konuların uygunluğu

Bilgi bankasındaki bilgiler, BT altyapısı ve AlexHost hizmeti alanındaki en son değişiklikleri ve eğilimleri yansıtacak şekilde düzenli olarak güncellenmektedir

Aradığınız konuyu bulamadınız mı? Mükemmel bir çözüm var

Seçkin Misafirler ve Müşteriler! Sizin rahatınız bizim önceliğimizdir! Belirli bir yazılımı kurmakta veya bir sunucuyu dağıtmakta zorluk çekiyorsanız, lütfen bizimle iletişime geçmekten çekinmeyin. Görüşlerinize değer veriyoruz ve sorunlarınızı çözmenize yardımcı olmaya her zaman hazırız.

Dahası, size bilgi tabanımızın oluşturulmasına aktif olarak katılma fırsatı veriyoruz. Veritabanımıza dahil edilmesini istediğiniz konularınız veya sorularınız varsa, bize bildirin! İhtiyaçlarınıza göre ayrıntılı makaleler ve kılavuzlar yazmaya hazırız.

AlexHost ile deneyiminizi mümkün olduğunca rahat ve verimli hale getirmek için çalışıyoruz ve bilgi tabanına katkınız bu hedefe ulaşmamıza yardımcı oluyor. Bize ulaşın ->
info@alexhost.com ve bizimle konaklamanızı nasıl daha iyi hale getirebileceğimizi bize bildirin.

Solution Image