xargs untuk pemula dengan contoh

xargs untuk pemula dengan contoh

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
xargs untuk pemula dengan contoh

Persyaratan dan konvensi perangkat lunak yang digunakan

Persyaratan Perangkat Lunak dan Konvensi Baris Perintah Linux
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:

Output LS ternoda setelah XARGS digunakan, membutuhkan penggunaan -color = tidak pernah opsi untuk LS
$ 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