Xargs untuk pemula dengan contoh
- 2919
- 525
- Marcus Kassulke
Menggunakan Xargs
, Diterangkan dalam manual Linux Xargs sebagai alat yang membina dan melaksanakan baris arahan dari input standard, sekali dapat menghasilkan sejumlah besar kuasa tambahan ke atas mana -mana arahan lain yang dilaksanakan pada baris perintah bash. Pada dasarnya, Xargs
akan mengambil output dari mana -mana alat lain, dan menggunakannya kerana input sendiri untuk pemprosesan dan tindakan selanjutnya (oleh itu rujukan untuk melaksanakan baris arahan dalam manual). Sekiranya ini adalah beberapa minggu atau bulan pertama anda dengan Xargs
, atau anda baru sahaja bermula, ini adalah tempat terbaik untuk anda masuk Xargs
.
Dalam tutorial ini anda akan belajar:
- Bagaimana nak guna
Xargs
dari baris arahan di bash - Bagaimana
Xargs
berfungsi, apa yang dilakukannya, dan cara menggunakannya dengan baik - Contoh penggunaan asas menggunakan
Xargs
dari baris arahan di bash
Keperluan perisian dan konvensyen yang digunakan
Kategori | Keperluan, konvensyen atau versi perisian yang digunakan |
---|---|
Sistem | Pengedaran linux-bebas |
Perisian | Baris perintah bash, sistem berasaskan linux |
Yang lain | The Xargs Utiliti dimasukkan ke dalam shell bash secara lalai |
Konvensyen | # - Memerlukan komando linux yang diberikan untuk dilaksanakan dengan keistimewaan akar sama ada secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah$-Memerlukan Givinglinux-Commands untuk dilaksanakan sebagai pengguna yang tidak berkadar biasa |
Contoh 1: permulaan yang sederhana
Mari menyelam dengan mudah Xargs
Contoh:
$ echo '1'> 1 $ echo '2'> 2 $ echo '3'> 3 $ ls 1 2 3 $ ls | Xargs Cat 1 2 3
Dalam contoh ini, kami dengan cepat mencipta 3 fail dengan mengulangi nombor dan kemudian mengarahkan output (menggunakan >
) hingga 3 fail individu yang dinamakan 1
ke 3
. Selepas ini, kami memeriksa kewujudan fail dengan ls
Perintah (Kandungan Direktori Senarai).
Dalam arahan terakhir, kami menggunakan ls
dan paip (menggunakan |
) ia output ke Xargs
. Selepas Xargs
Perintah kami menyenaraikan arahan baru yang kami mahukan Xargs
untuk melaksanakan Untuk apa -apa input yang diterima, secara individu setiap input, Dalam kes ini kucing
(yang mengeluarkan kandungan fail).
Pada dasarnya arahan di atas adalah sama dengan set arahan berikut (walaupun jika kandungan direktori akan berubah, ia tidak akan lagi sama seperti Xargs
hanya termasuk penyertaan direktori baru):
$ Cat 1 1 $ Cat 2 2 $ Cat 3 3
Contoh 2: Sedikit lebih kompleks
$ ls -Color = Never | xargs -i kucing 1 2 3
Di sini kami menambah beberapa idiom sintaks bash (idiom adalah bahasa/ekspresi bahasa) untuk meningkatkan kualiti dan mungkin pembacaan skrip satu liner yang sama, walaupun output - dalam kes ini - tetap sama.
The -I
pilihan untuk Xargs
mentakrifkan a menggantikan rentetan yang akan digunakan di dalam perintah Xargs untuk memasukkan, pada titik di mana rentetan ganti digunakan lagi, input yang diterima, dan untuk setiap input secara individu - i.e. arahan yang ditentukan selepas Xargs
Perintah akan dilaksanakan untuk setiap input secara individu.
The --warna = tidak pernah
tambahan menjadikan output yang dihasilkan oleh ls
perintah (dan oleh itu input ke Xargs
perintah) lebih selamat.
Contoh 3: Output Buggy
Dalam contoh terakhir kami memperkenalkan --warna = tidak pernah
Sebagai pilihan yang disarankan. Mari kita lihat contoh bagaimana - tanpa pilihan ini - kita boleh menghadapi masalah:
$ mkdir 1 2 3 $ ls 1 2 3 $ ls | Xargs LS LS: Tidak dapat mengakses "
Output menarik 🙂 jadi apa yang berlaku di sini?
Kami mula -mula mencipta tiga direktori, 1
ke 3
, dan kemudiannya memeriksa penciptaannya. Perhatikan output biru gelap, ihsan warna shell bash, yang disediakan secara lalai misalnya ubuntu.
Seterusnya kami mengambil output dari ls
dan lulus ke Xargs
yang seterusnya melepaskannya kembali ls
. Sama seperti 'Echo 1 | LS 'akan mengharapkan. Tetapi ia tidak berfungsi! Sebaliknya, kami menerima satu set Kod Warna Backr. Sesiapa sahaja yang melihatnya untuk pertama kalinya akan mempunyai masa yang sukar menghubungkannya kembali ke kod warna.
Menambah pilihan mudah --warna = tidak pernah
dibersihkan ls
output sebagai input yang lebih sesuai untuk Xargs
, dan output kelihatan seperti yang diharapkan: untuk direktori 1
ke 3
, sebagai output oleh ls
perintah, senaraikan kandungannya (i.e. sama seperti ls 1; LS 2; LS3
).
Contoh 4: Penghalang teks dengan Xargs dan sed
$ echo -e '1 \ n2 \ n3'> ujian $ ujian cat 1 2 3 $ ls test $ ls - -color = never | Xargs -i Cat | sed's | [2-3] | 0 | '' 1 0 0 $ ls -Color = Never | Xargs -i Cat | sed's | [2-3] | 0 | '' | xargs -i grep $ (ls) 1
Contoh yang lebih mencabar, tetapi anda akan segera memahaminya.
Perintah pertama hanya membuat fail dengan tiga baris (\ n
mewujudkan garis baru, dan -e
pilihan untuk echo membolehkan \ n
untuk digunakan). Seterusnya, kami mengeluarkan kandungan fail yang menggunakannya kucing
, dan memeriksa berapa banyak fail yang hadir menggunakan ls
(Hanya satu; ujian
fail yang kami buat).
Seterusnya kami mempunyai arahan Xargs berair kami, yang - seperti yang anda ketahui dari contoh sebelumnya - mengambil penyenaraian direktori, menghantarnya ke Xargs
dan mengeluarkan kandungan setiap fail yang diluluskan menggunakan kucing
. Kemudian kita mempunyai kecil sed
perintah yang menggantikan nombor 2
dan 3
hingga 0. Output adalah kandungan penuh fail ujian, tetapi dengan 2
dan 3
ditukar menjadi 0
seperti yang diarahkan.
Akhirnya, kami mengambil arahan yang sama dan menyampaikannya kepada yang lain Xargs
. Fikirkanlah seperti ini; secara visual (dalam fikiran anda) lihat 1
, 0
, 0
output dari arahan sebelumnya yang disalurkan (|
) ke final Xargs
tanpa kerumitan sebelumnya. Lihat bagaimana anda boleh membina arahan yang sangat kompleks secara beransur -ansur seperti ini? Ini juga menunjukkan kekuatan Xargs
Ringkasnya, walaupun banyak lagi yang mungkin.
Dalam perintah akhir kita lulus itu 1
, 0
, 0
output ke grep
, yang akan mencari kandungan $ (ls)
. $ ()
memulakan subshell, melaksanakan apa sahaja arahan di dalamnya, dan memasukkan output perintah itu di tempat di mana subshell dipanggil. Dengan kata lain, kami melaksanakan:
grep '1' ./ujian grep '0' ./ujian grep '0' ./ujian
Dan hasilnya memang seperti yang diharapkan; 1
Hanya, kerana tidak ada sifar dalam fail untuk bermula dengan.
Kesimpulan
Dalam artikel ini kita telah melihat asas -asas Xargs
perintah dan beberapa contoh bagaimana Xargs
boleh digunakan termasuk manipulasi penyenaraian penguraian teks dan direktori. Artikel seterusnya saya akan lebih maju Xargs
penggunaan, termasuk contoh tambahan.
Nikmati Xargs
dan tinggalkan kami komen dengan yang paling keren anda Xargs
baris perintah atau skrip!
Tutorial Linux Berkaitan:
- Contoh bagaimana menggunakan arahan Xargs di Linux
- Xargs pelbagai threaded dengan contoh
- Perkara yang hendak dipasang di Ubuntu 20.04
- Gelung bersarang dalam skrip bash
- Menguasai Gelung Skrip Bash
- Pengenalan kepada Automasi, Alat dan Teknik Linux
- Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
- Perintah Linux Asas
- Perintah Linux: Top 20 Perintah Paling Penting yang Anda Perlu ..
- Contoh Bash Kompleks Linux