15%

Hemat 15% di Semua Layanan Hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode:

Skills
Memulai
28.10.2024
1 +1

Cara Menggunakan Perintah `xargs` di Linux: Panduan Lengkap

Perintah xargs adalah salah satu utilitas paling powerful dan serbaguna yang tersedia di sistem Unix/Linux. Perintah ini membangun dan mengeksekusi perintah dengan membaca argumen dari input standar, secara efektif menjembatani kesenjangan antara perintah yang menghasilkan output dan perintah yang mengonsumsi argumen. Baik Anda mengelola ribuan file, mengotomatiskan tugas shell yang berulang, atau membangun pipeline perintah yang kompleks, menguasai xargs akan meningkatkan efisiensi Anda di terminal secara dramatis.

Dalam panduan komprehensif ini, kami akan membahas cara kerja xargs di balik layar, menelusuri contoh-contoh praktis di dunia nyata, menjelaskan semua opsi penting, dan menunjukkan cara menghindari kesalahan umum.

Apa Itu Perintah xargs dan Bagaimana Cara Kerjanya?

Pada intinya, xargs membaca item dari input standar (stdin) — biasanya dipisahkan oleh spasi atau baris baru — dan meneruskannya sebagai argumen ke perintah yang ditentukan. Ini sangat penting karena banyak perintah Unix tidak menerima input yang di-pipe secara langsung sebagai argumen; mereka mengharapkan argumen pada baris perintah. xargs memecahkan masalah ini dengan elegan.

Sintaks dasarnya adalah:

command | xargs [options] another_command

Misalnya, untuk menemukan semua file .txt di direktori saat ini dan menghapusnya:

find . -name "*.txt" | xargs rm

Di sini, find menghasilkan daftar nama file .txt dan menulisnya ke stdout. xargs membaca daftar tersebut dan meneruskan nama file sebagai argumen ke rm, yang kemudian menghapusnya — semuanya dalam satu operasi yang efisien.

> Mengapa tidak menggunakan rm $(find . -name "*.txt") saja? Substitusi perintah dapat gagal atau berperilaku tidak terduga ketika daftar argumen sangat panjang atau ketika nama file mengandung karakter khusus. xargs menangani kedua skenario tersebut dengan lebih aman dan efisien.

Penggunaan Dasar xargs

Sebelum menyelami contoh-contoh lanjutan, mari kita bangun pemahaman yang jelas tentang pola pemanggilan dasar.

Meneruskan Daftar Argumen Sederhana

echo "file1.txt file2.txt file3.txt" | xargs touch

Perintah ini membuat tiga file — file1.txt, file2.txt, dan file3.txt — dengan meneruskan ketiga nama tersebut sebagai argumen ke touch. Tanpa xargs, Anda perlu mengetik setiap nama file secara manual atau menulis sebuah loop.

Memverifikasi Apa yang Akan Dieksekusi oleh xargs

Sebelum menjalankan perintah yang berpotensi merusak, gunakan flag -t untuk mencetak perintah yang dibuat ke stderr sebelum mengeksekusinya:

echo "file1.txt file2.txt" | xargs -t rm

Output:

rm file1.txt file2.txt

Ini sangat berharga untuk men-debug pipeline sebelum melanjutkan ke eksekusi.

Contoh Praktis Penggunaan xargs

1. Menghapus File yang Ditemukan oleh find

Salah satu penggunaan xargs yang paling umum dan powerful adalah menggabungkannya dengan find untuk menghapus file yang memenuhi kriteria tertentu:

find /var/log -name "*.log" -mtime +30 | xargs rm

Ini menemukan semua file .log di /var/log yang berumur lebih dari 30 hari dan menghapusnya. Jenis pembersihan otomatis ini sangat penting untuk pemeliharaan server — sesuatu yang secara rutin ditangani oleh administrator yang menjalankan VPS Hosting atau Dedicated Server untuk menjaga penggunaan disk tetap terkendali.

2. Membatasi Jumlah Argumen Per Eksekusi dengan -n

Secara default, xargs meneruskan argumen sebanyak mungkin ke perintah dalam satu pemanggilan. Opsi -n memungkinkan Anda mengontrol dengan tepat berapa banyak argumen yang diteruskan per eksekusi:

echo "one two three four five six" | xargs -n 2 echo

Output:

one two
three four
five six

Ini sangat berguna ketika sebuah perintah memiliki batas jumlah argumen yang dapat diterimanya, atau ketika Anda ingin memproses item dalam batch yang terkontrol.

3. Menangani Nama File dengan Spasi dan Karakter Khusus Menggunakan -0

Ini adalah salah satu praktik keamanan terpenting saat menggunakan xargs. Nama file yang mengandung spasi, baris baru, atau karakter khusus lainnya akan merusak pipeline yang tidak aman. Solusinya adalah menggunakan find dengan -print0 (yang memisahkan nama file dengan byte null alih-alih baris baru) dan xargs dengan -0:

find . -name "*.txt" -print0 | xargs -0 rm

Byte null (

15%

Hemat 15% di Semua Layanan Hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode:

Skills
Memulai