Penjelasan fungsi dari command XARGS di linux

1
1508

Halo sahabat sekolahlinux, kali ini saya akan memberikan sedikit apa yang saya baca dari forum.linux.or.id tentang fungsi xargs yang menurut saya command ini ternyata cukup berguna juga bagi seorang sysadmin dan command xargs ini digunakan juga untuk beberapa list cronjobs di server tempat saya bekerja, berikut ini kutipan salah satu user bernama iang dari forum.linux.or.id.

pipe itu tuk meneruskan stdout ke stdin. xargs itu adalah APLIKASI yang memanfaatkan itu. Jangan disamakan pipe dan xargs karena keduanya adalah hal yang berbeda. Fungsinya ya jelas saja berbeda.

sebuah proses secara default ngebuka 3 buah pintu atau pipa, yaitu stdin (standard input), stdout (standard output), dan stderr (standard error). Pipe itu dipake tuk meneruskan data yg keluar dari stdout sebuah program ke stdin program yang lain.

hulu | hilir

eksekusi di atas akan membuat stdout dari hulu akan masuk ke stdin milik hilir.

Fungsi dari xargs adalah menjadikan data yang diterima oleh stdin miliknya sebagai argumen dari aplikasi lain yang disebut dalam argumen si xargs.

hulu | xargs hilir

kalau dieksekusi, maka keluaran stdout hulu akan dijadikan argumen hilir. Siapa yang mengeksekusi hilir? xargs. Siapa yang menjadikan keluaran hulu menjadi argumen milik hilir? xargs.

Kalau anda bingung, cek dulu apa yang anda mau. Program yang menjadi hilir itu perlu apa dan di mana. Kalau anda memiliki program lain yang menghasilkan data dan data tersebut mau dijadikan sebagai argumen, maka mungkin anda butuh bantuan xargs untuk keperluan ini.

Sebagai contoh, jika anda ingin menghapus berkas dengan rm seperti yang dicontohkan di atas. Program rm itu membutuhkan argumen daftar berkas yang ingin dihapus. Kalau anda memiliki program lain yang menghasilkan daftar berkas seperti find dan ingin dikirimkan ke program rm, maka Anda harus mengubah data tersebut menjadi argumen dari rm. Bagaimana caranya? bisa anda simpan dulu data tersebut ke sebuah variabel lalu anda panggil rm dengan menjadikan data dalam variabel tersebut sebagai parameternya. Atau anda dapat meminta bantuan xargs yang akan menerima data melalui stdin miliknya dan mengeksekusi sebuah program dengan menjadikan data tadi sebagai argumen dari program tersebut. Bagaimana cara menghubungkan data yang dikirim oleh find (yg keluar dari stdout) ke stdin milik xargs? Dengan pipe tentunya.

Jika rm dapat membaca daftar berkas dari stdin miliknya, maka anda dapat langsung menghubungkan stdout milik find ke stdin milik rm. Dengan apa? dengan pipe tentunya.

dan sebagai tambahan saya juga akan quote sebuah penjelasan lagi dari website catatanpinguin.wordpress.com tentang apa itu xargs dan penjelasannya.

Xargs adalah sebuah perintah di dalam sistem operasi UNIX dan sebagian sistem operasi berbasis UNIX, yang digunakan untuk membangun dan mengeksekusi baris perintah dari standar input. Berikut adalah kombinasi baris perintah untuk menyalin sebuah berkas ke dalam banyak direktori:

$echo dir1/ dir2/ dir3/ | xargs -n 1 cp file

Baris perintah diatas akan menyalin file ke dalam direktori dir1, dir2, dan dir3. Xargs akan memanggil cp sebanyak 3 kali untuk mengeksekusi hal ini. Untuk lebih jelasnya bisa dilihat di manual xarg di sistem Linux Anda masing-masing.

selamat mencoba ya, semoga berguna 😀

1 COMMENT