Linux'ta xargs Komutu Nasıl Kullanılır

Linux’ta xargs Komutu Nasıl Kullanılır

⌛ Reading Time: 4 minutes

Daha deneyimli kullanıcılardan bazıları için, terminalde her zaman daha akıllı ve daha fazla çalışmak için yeni yollar bulmaya çalışıyoruz. xargs iki komut arasında köprü görevi gören, birinin çıktısını okuyan ve diğerini okunan öğelerle yürüten kullanışlı bir komuttur. Komut, en yaygın olarak, bir kullanıcının bir kalıp aradığı, dosyaları kaldırdığı ve yeniden adlandırdığı ve daha fazlasını yaptığı senaryolarda kullanılır. Burada size nasıl kullanılacağını gösteriyoruz. xargs avantajınıza komuta edin.

xargs nedir?

Temel haliyle, xargs standart girişten (veya STDIN) bilgileri okur ve okunan öğelerle bir veya daha fazla kez bir komutu yürütür. Pek çok basit gösterim var, ama burada ne demek istediğimi gösteren bir tane var.

Sahip olmak xargs yürütmek ls Belgeler klasörümde komut, aşağıdaki komutu çalıştırırdım:

boru karakteri | bundan önce gelen her şeyi STDIN olarak boruluyor xargs.

Görebilirsin xargs Belgeler klasörümü sorunsuz okuyor. Bu, yeteneklerin sadece bir örneğidir. xargs emretmek.

iken xargs komut, çeşitli komut satırı işlemlerinde kullanılabilir, komut satırıyla birlikte kullanıldığında gerçekten kullanışlıdır. find emretmek. Bu makalede, nasıl yapılacağını anlamak için bazı yararlı örnekleri tartışıyoruz. xargs ve find birlikte kullanılabilir.

Birden Fazla Dosya İçeren İşlemler

Bir dizinde bulunan tüm metin dosyalarına “ref.txt” içeriğini kopyalamak istediğinizi varsayalım. Görev, aksi takdirde birden çok komut yürütmenizi gerektirebilir, ancak xargs komutu ile birlikte find komut, kolaylaştırır. Birkaç test dizinim var. Birinde metin içeren “test0.txt” var ve diğer dizinde içinde metin olmayan 10 test dosyası daha var. içeriğini almak isteseydim test0.txt ve bunu diğer dizinlerdeki metin dosyalarının geri kalanına kopyalayın, aşağıdaki komutu çalıştırırdım:

Xargs Cp'yi Bul

Yukarıda gösterilen komutu anlamak için onu iki kısma ayıralım.

İlk bölüm find ./test-dir1/ -name "*.txt" , “test-dir1” dizininde bulunan tüm .txt dosyalarını arar. Burada herhangi bir dizini belirtebilirsiniz.

İkinci kısım, xargs -n1 cp test.txt, ilk komutun çıktısını (sonuçtaki dosya adları) alacak ve cp (kopyala) tek tek komut verin. unutmayın ki -n seçenek, talimat verdiği gibi burada çok önemlidir xargs yürütme başına bir argüman kullanmak için.

Bir araya getirildiğinde, tam komut “test0.txt” içeriğini dizindeki tüm .txt dosyalarına kopyalayacaktır.

Xargs Cp Kanıtı

Çok Sayıda Argüman İçeren İşlemler

kullanmanın en büyük avantajlarından biri xargs çok sayıda argümanı işleme yeteneğidir. Örneğin, tek seferde çok sayıda dosya silinirken, rm komut bazen bir “ ile başarısız olurArgüman listesi çok uzun” hata. Bunun nedeni, bu kadar uzun bir argüman listesiyle başa çıkamamasıdır. Bu genellikle, silmek istediğiniz klasörde çok fazla dosyanız olduğunda geçerlidir.

Diyelim ki 75 PDF’niz var ve bunları silmeye çalışırken bir hata alıyorsunuz.

Xargs PDF'leri

Bu ile kolayca düzeltilebilir xargs. Tüm bu dosyaları silmek için aşağıdaki komutu kullanın:

Xargs Rm F

Kalıp Arama İçeren İşlemler

Yazılım geliştiricileri ve sistem yöneticileri, komut satırında çalışırken çok sayıda kalıp araması yaparlar. Örneğin, bir geliştirici belirli bir değişkeni değiştiren proje dosyalarına hızlı bir şekilde bakmak isteyebilir veya bir sistem yöneticisi belirli bir sistem yapılandırma parametresini kullanan dosyaları görmek isteyebilir. Bu senaryolarda, xargs, ile birlikte find ve grep, işleri sizin için kolaylaştırır.

Örneğin, “maketecheasier” dizesini içeren tüm “.txt” dosyalarını aramak için aşağıdaki komutu çalıştırın:

İşte sistemimde üretilen komutun çıktısı.

Xargs Grep Mte

Kes/Kopyala İşlemleri

Xargs, ile birlikte find komutu, bir dizi dosyayı bir dizinden diğerine kopyalamak veya taşımak için de kullanılabilir. Örneğin, 10 dakikadan eski tüm metin dosyalarını geçerli dizinden önceki dizine taşımak için aşağıdaki komutu kullanın:

NS -I komut satırı seçeneği tarafından kullanılır xargs çıktısından okunan adlarla değiştirilen bir değiştirme dizesi tanımlama komutu find emretmek. Burada değiştirme dizesi {}, ama her şey olabilir. Örneğin, “dosya”yı değiştirme dizesi olarak kullanabilirsiniz.

xargs Ne Zaman Çıkılacağı Nasıl Anlaşılır

Geçerli dizinde bulunan tüm .txt dosyalarının ayrıntılarını listelemek istediğinizi varsayalım. Daha önce açıklandığı gibi, aşağıdaki komut kullanılarak kolayca yapılabilir:

Ama bir sorun var: xargs komutu yürütecek ls komut olsa bile find komut herhangi bir .txt dosyası bulamıyor. Aşağıdaki bir örnektir.

Xargs Txt Png'lerini Bul

Böylece dizinde .txt dosyası olmadığını görebilirsiniz, ancak bu durmadı xargs yürütülmesinden ls emretmek. Bu davranışı değiştirmek için, -r komut satırı seçeneği:

Çözüm

Burada kullanmaya konsantre olmama rağmen xargs ile birlikte find, diğer birçok komutla da kullanılabilir. Yürütmeniz gereken birden fazla karmaşık komutunuz varsa, xargs çok kullanışlı bir araçtır.

Nasıl kullanılacağına dair yazımızı beğendiyseniz xargs “Cihazda boş alan kalmadı” hatasını düzeltme veya Ubuntu’yu hızlandırma kılavuzlarımız gibi diğer Linux içeriklerimizden bazılarını kontrol ettiğinizden emin olun.

How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

No votes so far! Be the first to rate this post.