Berikut ini akan Computory jelaskan mengenai Cara Menggunakan Perintah xargs di Linux supaya menambah pengetahuan dan informasi.
Untuk beberapa pengguna Linux yang lebih berpengalaman, sangatlah lumrah untuk selalu mencari cara baru agar dapat bekerja lebih cerdas dan tidak lebih keras di terminal.
xargs
adalah perintah berguna yang bertindak sebagai jembatan antara dua perintah, membaca output dari satu perintah dan menjalankan perintah lain dengan item yang dibaca. Perintah ini paling sering digunakan dalam skenario saat pengguna mencari pola, menghapus dan mengganti nama file, dan banyak lagi.
Di sini Computory akan tunjukkan cara menggunakan perintah xargs
yang bisa Anda coba.
Apa itu xargs?
Pada dasarnya, xargs
adalah perintah yang digunakan untuk membaca informasi dari input standar (atau STDIN) dan dapat menjalankan perintah satu kali atau lebih dengan item yang dibaca.
Misalnya menggunakan xargs
untuk menjalankan perintah ls
di folder Dokumen, caranya adalah sebagai berikut:
echo "Documents" | xargs ls
Karakter |
berfungsi untuk menyalurkan apa pun yang datang sebelumnya sebagai STDIN untuk xargs
.
Kamu bisa lihat itu xargs
membaca folder Dokumen saya tanpa masalah. Ini hanyalah salah satu contoh kapabilitas xargs
perintah.
Perintahxargs
tidak hanya dapat digunakan dalam berbagai operasi baris perintah, namun juga akan sangat berguna bila digunakan dengan perintahfind
.
Operasi yang Melibatkan Banyak File
Misalkan Anda ingin menyalin konten dari suatu file “.txt” ke semua file teks yang ada di direktori.
Meskipun tugas tersebut umumnya mengharuskan Anda untuk menjalankan beberapa perintah, perintahxargs
, bersama dengan find
membuatnya menjadi sederhana.
Disini misalnya kita akan gunakan file “test0.txt”, yang berisi teks yang ingin disalin, dan direktori lainnya memiliki 10 file pengujian lain tanpa teks di dalamnya. Jika saya ingin menyalin konten test0.txt
ke file-file teks di direktori lain, Anda bisa menjalankan perintah berikut:
find ./test-dir1/ -name "*.txt" | xargs -n1 cp test0.txt
Untuk memahami perintah yang ditunjukkan di atas, mari bagi menjadi dua bagian.
Bagian pertama adalah find ./test-dir1/ -name "*.txt"
, yang mencari semua file .txt yang ada di dalam suatu direktori, dalam contoh ini kami beri nama “test-dir1”. Anda dapat mengubahnya menjadi direktori apa pun yang Anda gunakan.
Bagian kedua, xargs -n1 cp test.txt
, akan mengambil output dari perintah pertama (nama file yang dihasilkan) dan menerapkan perintah cp
(copy/salin) ke satu per satu file yang ada di dalam direktori target. Perhatikan bahwa perintah-n
sangat penting di sini, karena mengiinstruksikan xargs
untuk menggunakan satu argumen per eksekusi.
Saat digabungkan, perintah tersebut akan menyalin konten “test0.txt” ke semua file .txt di direktori.
Operasi yang Melibatkan Banyak Argumen
Salah satu keuntungan utama menggunakan xargs
adalah kemampuannya untuk menangani sejumlah besar argumen. Misalnya, saat menghapus sejumlah besar file sekaligus, perintahrm
terkadang gagal dan malah menampilkan “Argument list too long“.
Hal itu dikarenakan perintah tersebut 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 file PDF dan Anda mendapatkan kesalahan saat mencoba menghapusnya.
Ini dapat dengan mudah diperbaiki dengan xargs
. Untuk menghapus semua file ini, gunakan perintah berikut:
find ./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
, akan dapat memudahkan operasi tersebut.
Misalnya, untuk mencari semua file “.txt” yang berisi string “maketecheasier”, jalankan perintah berikut:
find ./ -name "*.txt" | xargs grep "maketecheasier"
Operasi Cut/Copy (Potong / Salin)
Xargs
danfind
juga dapat digunakan untuk menyalin atau memindahkan sekumpulan file dari satu direktori ke direktori lain. Misalnya, untuk memindahkan semua file teks yang sudah tersimpan lebih dari 10 menit dari direktori saat ini ke direktori sebelumnya, gunakan perintah berikut:
find . -name "*.txt" -mmin +10 | xargs -n1 -I '{}' mv '{}' ../
Penggunaan-I
oleh xargs
adalah untuk mendefinisikan string pengganti yang diganti dengan nama yang dibaca dari keluaran file find
perintah. Pada contoh di atas replace-stringnya adalah {}
, tapi bisa jadi apa saja. Misalnya, Anda dapat menggunakan “file” sebagai string pengganti.
find . -name "*.txt" -mmin 10 | xargs -n1 -I 'file' mv 'file' ./practice
Bagaimana Memberitahu xargs Kapan Berhenti
Misalkan Anda ingin membuat daftar detail dari semua file .txt yang ada di direktori saat ini. Seperti yang sudah dijelaskan, itu dapat dengan mudah dilakukan dengan menggunakan perintah berikut:
find . -name "*.txt" | xargs ls -l
Tapi ada satu masalah:xargs
akan menjalankan ls
bahkan jika find
gagal menemukan file .txt. Berikut ini adalah contohnya.
Jadi Anda dapat melihat bahwa meskipun tidak ada file .txt di direktori, tetapi itu tidak menghentikanxargs
dari menjalankan perintahj ls
. Untuk mengubah perilaku ini, gunakan -r
pada baris perintah:
find . -name "*.txt" | xargs -r ls -l
Kesimpulan
Meskipun kebanyakan contoh yang diberikan hanya berkutat di seputarxargs
dengan find
, perintah xargs juga dapat digunakan dengan banyak perintah lainnya. Jika Anda memiliki banyak perintah kompleks yang perlu Anda jalankan, xargs
adalah alat yang sangat berguna.
Leave a Reply