Untuk beberapa pengguna yang lebih berpengalaman, kami selalu mencari cara baru untuk bekerja lebih cerdas dan tidak lebih keras di terminal. xargs adalah perintah berguna yang bertindak sebagai jembatan antara dua perintah, membaca keluaran dari satu perintah dan menjalankan perintah lainnya dengan item yang dibaca. Perintah ini paling sering digunakan dalam skenario saat pengguna mencari pola, menghapus dan mengganti nama file, dan lainnya. Di sini kami tunjukkan cara menggunakan perintah xargs untuk keuntungan Anda.
Apa itu xargs?
Dalam bentuk dasarnya, xargs membaca informasi dari input standar (atau STDIN) dan mengeksekusi perintah satu kali atau lebih dengan item yang dibaca. Ada banyak demonstrasi sederhana, tapi inilah salah satu yang menunjukkan apa yang saya maksud.
Agar xargs menjalankan perintah ls di folder Dokumen saya, saya akan menjalankan perintah berikut:
gema “Dokumen” | xargs ls
Karakter pipa | menyalurkan apa pun yang datang sebelumnya sebagai STDIN untuk xargs.
Anda dapat melihat bahwa xargs membaca folder Dokumen saya tanpa masalah. Ini hanyalah salah satu contoh kemampuan perintah xargs.
Meskipun perintah xargs dapat digunakan dalam berbagai operasi baris perintah, perintah ini sangat berguna saat digunakan dengan perintah find. Pada artikel ini, kita membahas beberapa contoh berguna untuk memahami bagaimana xargs dan find dapat digunakan bersama.
Operasi yang Melibatkan Banyak File
Misalkan Anda ingin menyalin konten “ref.txt” ke semua file teks yang ada di direktori. Sementara tugas tersebut mungkin mengharuskan Anda untuk menjalankan beberapa perintah, perintah xargs, bersama dengan perintah find, membuatnya sederhana. Saya memiliki beberapa direktori pengujian. Satu memiliki “test0.txt”, yang berisi teks, dan direktori lainnya memiliki 10 file uji lainnya tanpa teks di dalamnya. Jika saya ingin mengambil konten test0.txt dan menyalinnya ke file teks lainnya di direktori lain, saya akan menjalankan perintah berikut:
temukan . / test-dir1 / -name “*.txt” | xargs -n1 cp test0.txt
Untuk memahami perintah yang ditunjukkan di atas, mari kita bagi menjadi dua bagian.
Bagian pertama adalah find ./test-dir1/ -name “*.txt” , yang mencari semua file .txt yang ada di direktori “test-dir1â€. Anda dapat menentukan direktori apa pun di sini.
Bagian kedua, xargs -n1 cp test.txt, akan mengambil output dari perintah pertama (nama file yang dihasilkan) dan menyerahkannya ke perintah cp (copy) satu per satu. Perhatikan bahwa opsi -n sangat penting di sini, karena menginstruksikan xargs untuk menggunakan satu argumen per eksekusi.
Saat digabungkan bersama, perintah lengkap akan menyalin konten “test0.txt” ke semua file .txt di direktori.
Operasi yang Melibatkan Sejumlah Besar Argumen
Salah satu keuntungan utama menggunakan xargs adalah kemampuannya menangani sejumlah besar argumen. Misalnya, saat menghapus sejumlah besar file sekaligus, perintah rm terkadang gagal dengan kesalahan ” Daftar argumen terlalu panjang “. Itu karena tidak bisa begitu saja menangani daftar argumen yang begitu panjang. Ini biasanya terjadi ketika Anda memiliki terlalu banyak file di folder yang ingin Anda hapus.
Katakanlah Anda memiliki 75 PDF dan Anda mendapatkan kesalahan saat mencoba menghapusnya.
Ini dapat dengan mudah diperbaiki dengan xargs. Untuk menghapus semua file ini, gunakan perintah berikut:
temukan . / test-dir2 / -type f -name “*.pdf” -print | xargs rm -f
Operasi yang Melibatkan Pencarian Pola
Pengembang perangkat lunak serta administrator sistem melakukan banyak pencarian pola saat mengerjakan baris perintah. Misalnya, pengembang mungkin ingin melihat sekilas file proyek yang mengubah variabel tertentu, atau administrator sistem mungkin ingin melihat file yang menggunakan parameter konfigurasi sistem tertentu. Dalam skenario ini, xargs, bersama dengan find dan grep, memudahkan Anda.
Misalnya, untuk mencari semua file “.txt†yang berisi string “maketecheasierâ€, jalankan perintah berikut:
temukan . / -nama “*.txt” | xargs grep “membuat lebih mudah”
Ini adalah output dari perintah yang dihasilkan di sistem saya.
Operasi Potong/Salin
Xargs, bersama dengan perintah find, juga dapat digunakan untuk menyalin atau memindahkan sekumpulan file dari satu direktori ke direktori lainnya. Misalnya, untuk memindahkan semua file teks yang berusia lebih dari 10 menit dari direktori saat ini ke direktori sebelumnya, gunakan perintah berikut:
temukan . -nama “*.txt” -mmin +10 | xargs -n1 -I ‘{}’ mv ‘{}’ .. /
Opsi baris perintah -I digunakan oleh perintah xargs untuk mendefinisikan string pengganti yang diganti dengan nama yang dibaca dari keluaran perintah find. Di sini string penggantinya adalah {}, tapi bisa apa saja. Misalnya, Anda dapat menggunakan “file” sebagai string pengganti.
temukan . -nama “*.txt” -mmin 10 | xargs -n1 -I ‘berkas’ mv ‘berkas’ . / latihan
Bagaimana Mengetahui xargs Kapan Harus Berhenti
Misalkan Anda ingin mencantumkan detail semua file .txt yang ada di direktori saat ini. Seperti yang sudah dijelaskan, itu dapat dengan mudah dilakukan dengan menggunakan perintah berikut:
temukan . -nama “*.txt” | xargs ls -l
Tapi ada satu masalah: perintah xargs akan mengeksekusi perintah ls bahkan jika perintah find gagal menemukan file .txt. Berikut ini adalah contohnya.
Jadi Anda dapat melihat bahwa tidak ada file .txt di direktori, tetapi itu tidak menghentikan xargs untuk menjalankan perintah ls. Untuk mengubah perilaku ini, gunakan opsi baris perintah -r:
temukan . -nama “*.txt” | xargs -r ls -l
Kesimpulan
Meskipun saya berkonsentrasi di sini untuk menggunakan xargs dengan find, ini juga dapat digunakan dengan banyak perintah lainnya. Jika Anda memiliki banyak perintah rumit yang perlu Anda jalankan, xargs adalah alat yang sangat berguna.
Jika Anda menikmati artikel kami tentang cara menggunakan perintah xargs di Linux, pastikan untuk memeriksa beberapa konten Linux kami yang lain, seperti panduan kami untuk memperbaiki kesalahan “tidak ada ruang tersisa di perangkat” atau mempercepat Ubuntu.