xargs untuk pemula dengan contoh
- 2366
- 228
- Ricardo Gottlieb
Menggunakan xargs
, dijelaskan dalam manual Linux Xargs sebagai alat yang membangun dan menjalankan baris perintah dari input standar, sekali dapat mengerahkan sejumlah besar daya tambahan atas perintah lain yang dieksekusi pada baris perintah bash. Pada dasarnya, xargs
akan mengambil output dari alat lain, dan menggunakannya sebagai input sendiri untuk pemrosesan dan tindakan lebih lanjut (karenanya referensi untuk mengeksekusi baris perintah dalam manual). Jika ini adalah beberapa minggu atau bulan pertama Anda xargs
, Atau Anda baru saja memulai, ini adalah tempat terbaik untuk Anda masuki xargs
.
Dalam tutorial ini Anda akan belajar:
- Cara Penggunaan
xargs
dari baris perintah dalam bash - Bagaimana
xargs
bekerja, apa yang dilakukannya, dan bagaimana menggunakannya dengan baik - Contoh Penggunaan Dasar Menggunakan
xargs
dari baris perintah dalam bash
Persyaratan dan konvensi perangkat lunak yang digunakan
Kategori | Persyaratan, konvensi atau versi perangkat lunak yang digunakan |
---|---|
Sistem | Distribusi Linux-independen |
Perangkat lunak | Baris perintah bash, sistem berbasis Linux |
Lainnya | Itu xargs Utilitas termasuk dalam shell bash secara default |
Konvensi | # - mensyaratkan Linux -Commands untuk dieksekusi dengan hak istimewa root baik secara langsung sebagai pengguna root atau dengan menggunakan sudo memerintah$-mengharuskan perusahaan yang diberikan untuk dieksekusi sebagai pengguna reguler yang tidak istimewa |
Contoh 1: Awal yang sederhana
Mari selami dengan sederhana 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 membuat 3 file dengan menggemakan angka dan kemudian mengarahkan ulang output (menggunakan >
) untuk 3 file individual bernama 1
ke 3
. Setelah ini, kami memeriksa keberadaan file dengan ls
Perintah (Daftar Isi Direktori).
Dalam perintah terakhir, kami menggunakan ls
dan pipa (menggunakan |
) Ini output xargs
. Setelah xargs
Perintah Kami mencantumkan perintah baru yang kami inginkan xargs
untuk mengeksekusi Untuk input apa pun yang diterima, secara individual per input, pada kasus ini kucing
(yang menghasilkan konten file).
Pada dasarnya perintah di atas analog dengan set perintah berikut (meskipun jika konten direktori akan berubah, itu tidak lagi analog seperti xargs
hanya akan menyertakan entri direktori baru):
$ Cat 1 1 $ Cat 2 2 $ Cat 3 3
Contoh 2: Sedikit lebih kompleks
$ ls - -color = tidak pernah | xargs -i cat 1 2 3
Di sini kami menambahkan beberapa idiom sintaks bash (idiom adalah konstruk/ekspresi bahasa) untuk sangat meningkatkan kualitas dan mungkin keterbacaan dari skrip satu -liner yang sama, meskipun output - dalam hal ini - tetap sama.
Itu -SAYA
opsi untuk xargs
mendefinisikan a mengganti string yang akan digunakan di dalam perintah XArgs untuk menyisipkan, pada titik di mana string ganti digunakan lagi, input yang diterima, dan bahwa untuk setiap input secara individual - i.e. Perintah yang ditentukan setelah xargs
Perintah akan dieksekusi untuk setiap input secara individual.
Itu --warna = tidak pernah
penambahan membuat output dihasilkan oleh ls
perintah (dan karena itu input ke xargs
perintah) jauh lebih aman.
Contoh 3: Output Buggy
Dalam contoh terakhir kami memperkenalkan --warna = tidak pernah
Sebagai opsi yang disarankan. Mari kita lihat contoh bagaimana - tanpa opsi ini - kita dapat mengalami masalah:
$ mkdir 1 2 3 $ ls 1 2 3 $ ls | xargs ls ls: tidak dapat mengakses "
Output menarik 🙂 Jadi apa yang terjadi di sini?
Kami pertama kali membuat tiga direktori, 1
ke 3
, dan kemudian memeriksa kreasi itu. Perhatikan outputnya berwarna biru tua, milik Bash Shell Colors, yang diatur secara default pada misalnya Ubuntu.
Selanjutnya kami mengambil output dari ls
dan meneruskannya xargs
yang pada gilirannya menyerahkannya kembali ke ls
. Mirip dengan 'Echo 1 | ls 'orang akan berharap. Tapi itu tidak berhasil! Sebaliknya, kami menerima satu set kode warna backr. Siapa pun yang melihat ini untuk pertama kalinya akan kesulitan menghubungkannya kembali ke kode warna.
Menambahkan opsi sederhana --warna = tidak pernah
Sanitasi ls
output sebagai input yang lebih cocok untuk xargs
, Dan output terlihat seperti yang diharapkan: untuk direktori 1
ke 3
, sebagai output oleh ls
perintah, daftar isinya (i.e. mirip dengan ls 1; LS 2; LS3
).
Contoh 4: Teks penguraian dengan xargs dan sed
$ echo -e '1 \ n2 \ n3'> uji $ Cat test 1 2 3 $ ls test $ ls - -color = Never | xargs -i cat | Sed 'S | [2-3] | 0 |' 1 0 0 $ ls - -Color = tidak pernah | xargs -i cat | Sed 'S | [2-3] | 0 |' | xargs -i grep $ (ls) 1
Contoh yang sedikit lebih menantang, tetapi Anda akan segera memahaminya.
Perintah pertama hanya membuat file dengan tiga baris (\N
menciptakan garis baru, dan -e
Opsi untuk gema memungkinkan \N
untuk digunakan). Selanjutnya, kami mengeluarkan isi file yang menggunakan kucing
, dan memeriksa berapa banyak file yang ada menggunakan ls
(Hanya satu; tes
file yang kami buat).
Selanjutnya kami memiliki perintah XARGS Juicy kami, yang - seperti yang Anda ketahui dari contoh sebelumnya - mengambil daftar direktori, mengirimkannya ke xargs
dan mengeluarkan isi setiap file yang dilewati menggunakan kucing
. Lalu kita memiliki yang kecil sed
Perintah yang menggantikan angka 2
Dan 3
ke 0. Output adalah konten penuh dari file uji, tetapi dengan 2
Dan 3
diubah menjadi 0
sesuai instruksi.
Akhirnya, kami mengambil perintah yang sama dan meneruskannya ke yang lain xargs
. Pikirkan itu seperti ini; secara visual (dalam pikiran Anda) lihat 1
, 0
, 0
output dari perintah sebelumnya sedang disalurkan (|
) ke final xargs
tanpa kompleksitas sebelumnya. Lihat bagaimana Anda dapat membangun perintah yang sangat kompleks secara bertahap seperti ini? Ini juga menunjukkan kekuatan xargs
Singkatnya, meskipun lebih banyak lagi.
Dalam perintah terakhir kita lulus itu 1
, 0
, 0
output ke grep
, yang akan mencari isi $ (LS)
. $ ()
Mulai subshell, jalankan perintah apa pun di dalamnya, dan memasukkan output dari perintah itu di tempat di mana subshell dipanggil. Dengan kata lain, kami mengeksekusi:
grep '1' ./tes grep '0' ./tes grep '0' ./tes
Dan hasilnya memang seperti yang diharapkan; 1
Hanya, karena tidak ada nol dalam file untuk memulai.
Kesimpulan
Dalam artikel ini kita telah melihat dasar -dasarnya xargs
perintah dan beberapa contoh bagaimana xargs
dapat digunakan termasuk penguraian teks dan manipulasi daftar direktori. Artikel saya berikutnya akan lebih maju xargs
penggunaan, termasuk contoh tambahan.
Menikmati xargs
Dan tinggalkan komentar dengan kami yang paling keren xargs
baris perintah atau skrip!
Tutorial Linux Terkait:
- Contoh tentang Cara Menggunakan Perintah XArgs di Linux
- Xargs multi-threaded dengan contoh
- Hal -hal yang harus diinstal pada ubuntu 20.04
- Loop bersarang dalam skrip bash
- Menguasai loop skrip bash
- Pengantar Otomatisasi Linux, Alat dan Teknik
- Hal -hal yang harus dilakukan setelah menginstal ubuntu 20.04 FOSSA FOSSA Linux
- Perintah Linux Dasar
- Perintah Linux: 20 perintah terpenting teratas yang Anda butuhkan untuk…
- Linux Complex Bash One-Liner Contoh