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.