Ini dapat dilakukan dengan findlangsung menggunakan -exec:
find . -name "*.xml" -type f -exec xmllint --output '{}' --format '{}' \;
Apa yang diteruskan -execakan dipanggil sekali per file yang ditemukan dengan parameter template {}diganti dengan nama file saat ini. Perintah \;di akhir find hanya mengakhiri baris.
Penggunaan kata xargstidak benar-benar diperlukan dalam kasus ini karena kita perlu memanggil xmllintsekali per file karena nama file input dan output harus ditentukan dalam panggilan yang sama.
xargsakan diperlukan jika perintah yang dikirim ke dari find bekerja pada beberapa file sekaligus dan daftar itu panjang. Anda tidak dapat melakukan itu dalam kasus ini, karena Anda harus meneruskan nama file tunggal ke --outputopsi xmllint. Tanpa xargsAnda bisa berakhir dengan kesalahan "Daftar Argumen terlalu lama" jika Anda memproses banyak file. xargsjuga mendukung string ganti file dengan -Iopsi:
find . -name "*.xml" -type f | xargs -I'{}' xmllint --output '{}' --format '{}'
Akan melakukan hal yang sama seperti find -execperintah di atas. Jika ada folder Anda yang memiliki karakter aneh di ruang yang sama, Anda harus menggunakan -0opsi finddan xargs. Tetapi menggunakan xargsdengan -Imenyiratkan opsi -L 1yang berarti hanya memproses 1 file pada satu waktu, jadi Anda mungkin juga langsung menggunakan finddengan -exec.