GNU/Linux >> Belajar Linux >  >> Linux

Perintah Xargs di Linux

xargs utilitas memungkinkan Anda untuk membangun dan menjalankan perintah dari input standar. Biasanya digunakan dalam kombinasi dengan perintah lain melalui perpipaan.

Dengan xargs , Anda dapat memberikan input standar sebagai argumen untuk utilitas baris perintah seperti mkdir dan rm .

Dalam tutorial ini, kita akan membahas dasar-dasar penggunaan xargs perintah.

Cara Menggunakan xargs Linux Perintah #

xargs membaca argumen dari input standar, dipisahkan oleh spasi kosong atau baris baru, dan mengeksekusi perintah yang ditentukan menggunakan input sebagai argumen perintah. Jika tidak ada perintah yang diberikan, defaultnya adalah /bin/echo .

Sintaks untuk xargs perintahnya adalah sebagai berikut:

xargs [OPTIONS] [COMMAND [initial-arguments]]

Contoh paling dasar menggunakan xargs akan melewatkan beberapa string yang dipisahkan dengan spasi menggunakan pipa ke xargs dan jalankan perintah yang akan menggunakan string tersebut sebagai argumen.

echo "file1 file2 file3" | xargs touch

Pada contoh di atas, kita menyalurkan input standar ke xargs , dan touch perintah dijalankan untuk setiap argumen, membuat tiga file. Ini sama seperti jika Anda akan menjalankan:

touch file1 file2 file3

Cara Melihat Perintah dan Prompt Pengguna #

Untuk mencetak perintah pada terminal sebelum menjalankannya gunakan -t (--verbose ) pilihan:

echo  "file1 file2 file3" | xargs -t touch
touch file1 file2 file3

Jika Anda ingin mendapatkan konfirmasi apakah akan menjalankan setiap perintah sebelum menjalankannya, gunakan -p (--interactive ) pilihan:

echo  "file1 file2 file3" | xargs -p touch

Ketik y atau Y untuk mengonfirmasi dan menjalankan perintah:

touch file1 file2 file3 ?...y

Opsi ini berguna saat menjalankan perintah destruktif.

Cara Membatasi Jumlah Argumen #

Secara default, jumlah argumen yang diteruskan ke perintah ditentukan oleh batas sistem.

-n (--max-args ) opsi menentukan jumlah argumen yang akan diteruskan ke perintah yang diberikan. xargs menjalankan perintah yang ditentukan sebanyak yang diperlukan sampai semua argumen habis.

Dalam contoh berikut, jumlah argumen yang dibaca dari input standar dibatasi hingga 1.

echo  "file1 file2 file3" |  xargs -n 1 -t touch

Seperti yang Anda lihat dari keluaran verbose di bawah ini, perintah sentuh dijalankan secara terpisah untuk setiap argumen:

touch file1
touch file2
touch file3

Cara Menjalankan Banyak Perintah #

Untuk menjalankan beberapa perintah dengan xargs , gunakan -I pilihan. Ia bekerja dengan mendefinisikan replace-str setelah -I opsi dan semua kemunculan replace-str diganti dengan argumen yang diteruskan ke xargs.

Berikut xargs contoh akan menjalankan dua perintah, pertama akan membuat file menggunakan touch , dan kemudian akan mencantumkan file dengan ls perintah:

echo "file1 file2 file3" | xargs -t -I % sh -c '{ touch %; ls -l %; }'
-rw-r--r-- 1 linuxize users 0 May  6 11:54 file1
-rw-r--r-- 1 linuxize users 0 May  6 11:54 file2
-rw-r--r-- 1 linuxize users 0 May  6 11:54 file3

Pilihan umum untuk replace-str adalah % . Namun, Anda dapat menggunakan placeholder lain, misalnya ARGS :

echo "file1 file2 file3" | xargs -t -I ARGS sh -c '{ touch ARGS; ls -l ARGS; }'

Cara Menentukan Pembatas #

Gunakan -d (--delimiter ) opsi untuk menyetel pembatas khusus, yang dapat berupa karakter tunggal atau urutan escape yang dimulai dengan \ .

Contoh berikut kita menggunakan ; sebagai pembatas:

echo  "file1;file2;file3" | xargs -d \; -t touch
touch file1 file2 file3

Cara Membaca Item dari File #

Perintah xargs juga dapat membaca item dari file alih-alih input standar. Untuk melakukannya, gunakan -a (--arg-file ) pilihan diikuti dengan nama file.

Pada contoh berikut, xargs perintah akan membaca ips.txt file dan ping setiap Alamat IP.

ips.txt
8.8.8.8
1.1.1.1

Kami juga menggunakan -L 1 opsi, yang menginstruksikan xargs untuk membaca satu baris pada satu waktu. Jika opsi ini dihilangkan xargs akan meneruskan semua IP ke satu ping perintah.

xargs -t -L 1 -a ips.txt ping -c 1
ping -c 1 8.8.8.8 
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=50 time=68.1 ms

...
ping -c 1 1.1.1.1 
PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.
64 bytes from 1.1.1.1: icmp_seq=1 ttl=59 time=21.4 ms

Menggunakan xargs dengan find #

xargs paling sering digunakan dalam kombinasi dengan find memerintah. Anda dapat menggunakan find untuk mencari file tertentu dan kemudian gunakan xargs untuk melakukan operasi pada file tersebut.

Untuk menghindari masalah dengan nama file yang berisi baris baru atau karakter khusus lainnya, selalu gunakan perintah find -print0 opsi, yang menyebabkan find untuk mencetak nama file lengkap diikuti dengan karakter null. Output ini dapat diinterpretasikan dengan benar oleh xargs menggunakan -0 , (--null ) pilihan.

Dalam contoh berikut, find akan mencetak nama lengkap semua file di dalam /var/www/.cache direktori dan xargs akan meneruskan jalur file ke rm perintah:

find /var/www/.cache -type f -print0 | xargs -0 rm -f

Menggunakan xargs untuk Memangkas Karakter Spasi #

xargs juga dapat digunakan sebagai alat untuk menghapus spasi dari kedua sisi string yang diberikan. Cukup pipa string ke xargs perintah, dan itu akan melakukan pemangkasan:

echo "  Long line " | xargs
Long line

Ini berguna saat membandingkan string dalam skrip shell.

#!/bin/bash

VAR1=" Linuxize "
VAR2="Linuxize"

if [[ "$VAR1" == "$VAR2" ]]; then
    echo "Strings are equal."
else
    echo "Strings are not equal."
fi

## Using xargs to trim VAR1
if [[ $(echo "$VAR1" | xargs) == "$VAR2" ]]; then
    echo "Strings are equal."
else
    echo "Strings are not equal."
fi
Strings are not equal.
Strings are equal.

Kesimpulan #

xargs adalah utilitas baris perintah di Linux yang memungkinkan Anda membuat dan menjalankan perintah.

Untuk informasi lebih detail tentang setiap xargs pilihan, baca halaman manual xargs.

Jika Anda memiliki pertanyaan atau masukan, jangan ragu untuk memberikan komentar.


Linux
  1. Perintah mv Linux

  2. Linux du perintah

  3. Perintah ip Linux

  1. Perintah cd Linux

  2. 10 Contoh Perintah Xargs di Linux / UNIX

  3. Contoh Perintah xargs di Linux

  1. Cara Menggunakan Perintah Linux xargs

  2. 11 Contoh Perintah Xargs di Linux

  3. Perintah ifconfig Linux