GNU/Linux >> Belajar Linux >  >> Linux

Cara Menggunakan Perintah Linux xargs

Pendahuluan

Perintah Linux tertentu mengambil input baik dari input standar (stdin) dan sebagai argumen baris perintah. Namun, yang lain dirancang untuk menerima masukan hanya sebagai argumen. Untuk dapat memproses input standar, perintah Linux tersebut perlu menggunakan xargs perintah.

Dalam tutorial ini, Anda akan mempelajari cara menggunakan xargs Linux perintah untuk memanipulasi input standar dan bekerja dengan perintah lain.

Prasyarat

  • Sistem yang menjalankan Linux
  • Akses ke baris perintah

Apa itu Perintah xargs?

xargs command membangun dan mengeksekusi perintah yang diberikan melalui input standar. Dibutuhkan input dan mengubahnya menjadi argumen perintah untuk perintah lain. Fitur ini sangat berguna dalam manajemen file, di mana xargs digunakan dalam kombinasi dengan rm , cp , mkdir , dan perintah serupa lainnya.

Cara Menggunakan Perintah xargs Dengan Contoh

Saat digunakan sendiri, xargs meminta pengguna untuk memasukkan string teks yang kemudian diteruskan ke echo perintah.

Contoh menunjukkan input contoh, diikuti oleh output echo perintah.

Gabungkan xargs dengan find

Perintah find sering mendahului xargs dalam sebuah pipa. Gunakan untuk memberikan daftar file untuk diproses lebih lanjut oleh xargs . Sintaksnya terlihat seperti ini:

find [location] -name "[search-term]" -type f | xargs [command]

Contoh di atas menunjukkan menggunakan find perintah untuk menemukan semua file dengan .sh perpanjangan. Daftar file kemudian disalurkan ke xargs , yang menggunakan rm perintah untuk menghapusnya.

Namun, xargs tidak secara otomatis menyertakan file yang berisi spasi kosong dalam namanya. Untuk menyertakan file tersebut juga, gunakan -print0 opsi untuk find , dan -0 opsi untuk xargs :

find [location] -name "[search-term]" -type f -print0 | xargs -0 [command]

rm sekarang hapus semua file dengan .sh ekstensi.

Gabungkan xargs dengan grep

Gunakan xargs dengan perintah grep untuk mencari string dalam daftar file yang disediakan oleh find perintah.

find . -name '[search-term]' | xargs grep '[string-to-find-in-files]'

Contoh di atas mencari semua file dengan .txt ekstensi dan menyalurkannya ke xargs , yang kemudian mengeksekusi grep perintah pada mereka.

Xargs Beberapa Perintah

Untuk menjalankan lebih dari satu perintah dengan xargs , gunakan -I pilihan. Sintaksnya adalah:

[command-providing-input] | xargs -I % sh -c '[command-1] %; [command-2] %'

Dalam contoh, isi file4.txt ditampilkan terlebih dahulu. Kemudian mkdir membuat folder untuk setiap kata dalam file.

Baca Item Dari File

Seperti disebutkan sebelumnya, xargs membaca input standar. Gunakan -a pilihan untuk membaca isi file sebagai gantinya.

xargs -a [filename]

Menemukan dan Mengarsipkan Gambar Menggunakan tar

Saat digunakan dengan perintah tar, xargs membuat tar.gz mengarsipkan dan mengisinya dengan file yang disediakan oleh find perintah.

find [location] -name "[search-term]" -type f -print0 | xargs -0 tar -cvzf [tar-gz-archive-name]

Perintah Cetak

Untuk melihat perintah yang dijalankan oleh xargs dalam keluaran standar, gunakan -t pilihan.

[command-providing-input] | xargs -t [command]

Pada contoh di atas, perhatikan bahwa xargs mengeksekusi perintah mkdir pada seluruh string yang disediakan oleh echo .

Setujui Eksekusi Perintah xargs

Beberapa xargs operasi, seperti menghapus file dan folder, tidak dapat diubah. Untuk mengontrol eksekusi perintah tersebut, gunakan -p pilihan.

[command-providing-input] | xargs -p [command]

Saat Anda menjalankan perintah dengan -p opsi, xargs menampilkan baris konfirmasi sebelum menjalankannya. Ketik y untuk melanjutkan, atau n untuk membatalkan operasi.

Batasi Output per Baris

Terkadang perlu untuk mengontrol jumlah argumen xargs mengambil pada waktu yang sama. Lakukan tindakan ini menggunakan -n opsi diikuti dengan jumlah argumen yang Anda batasi xargs ke:

[command-providing-input] | xargs -n [number] [command]

Pada contoh di bawah, xargs mengambil string dari echo perintah dan membaginya menjadi tiga. Kemudian ia mengeksekusi echo another lainnya untuk setiap bagian:

Tentukan Pembatas

Default xargs pembatas adalah ruang kosong. Untuk mengubah pembatas default, gunakan -d perintah diikuti oleh satu karakter atau karakter pelarian seperti n (baris baru).

[command-providing-input] | xargs -d [new-delimiter] | xargs [command]

Pada contoh di bawah, xargs perintah memerintahkan sistem untuk menggunakan * sebagai pembatas dan terapkan mkdir untuk setiap argumen yang diperoleh.

Mencantumkan Semua Akun Pengguna Linux di Sistem

Gunakan xargs untuk mengatur output dari perintah, seperti cut . Perhatikan contoh berikut:

cut -d: -f1 < /etc/passwd | sort | xargs

Perintah cut mengakses /etc/passwd file dan menggunakan : pembatas untuk memotong awal setiap baris dalam file. Outputnya kemudian disalurkan ke sort , yang mengurutkan string yang diterima, dan terakhir ke xargs yang menampilkannya:

Hapus Spasi Kosong di String

Sejak xargs mengabaikan spasi kosong saat mencari argumen, perintah ini berguna untuk menghapus spasi kosong yang tidak perlu dari string.

echo "[string-with-unnecessary-spaces]" | xargs

Mencantumkan Jumlah Baris/Kata/Karakter di Setiap File

Gunakan xargs dengan perintah wc untuk menampilkan daftar file dengan jumlah baris, kata, dan karakter.

ls | xargs wc

Contoh di bawah menginstruksikan perintah ls untuk menyalurkan ke xargs hanya file yang mengandung kata "contoh". xargs lalu terapkan wc ke daftar itu:

Salin File ke Beberapa Direktori

Salin file ke beberapa direktori menggunakan xargs memerintah. Sintaksnya sederhana:

echo [directory-1] [directory-2] | xargs -n 1 cp -v [filename]

echo perintah menyediakan nama direktori, dan xargs menggunakan perintah cp untuk menyalin file yang diberikan ke setiap direktori.


Linux
  1. Cara menggunakan perintah sed Linux

  2. Cara menggunakan perintah grep Linux

  3. Cara menggunakan perintah history di Linux

  1. Cara menggunakan Perintah Su di Linux

  2. Cara Menggunakan Perintah id di Linux

  3. Cara menggunakan perintah "layar" di Linux

  1. Cara Menggunakan Perintah Sudo di Linux

  2. Cara Menggunakan Linux di Command

  3. Cara Menggunakan Perintah locate di Linux