Saya pikir ini adalah cara umum untuk meneruskan hasil dari satu perintah ke yang berikutnya, sebagai input.
Bagaimana ketiganya bekerja? Atau apakah beberapa situs web / URL?
Hal pertama yang harus diketik:
man find
man xargs
The find
perintah cetak hasil ke output standar secara default, sehingga -print
opsi biasanya tidak diperlukan, tetapi -print0
memisahkan nama file dengan (NULL) byte 0 sehingga nama-nama yang mengandung spasi atau baris dapat diartikan dengan benar.
The -exec
pilihan adalah sesuatu yang Anda dapat menggunakan bukan xargs - perintah find mengeksekusi perintah untuk setiap item yang ditemukan.
The xargs
perintah membaca string ruang angkasa atau baris baru dipisahkan (biasanya dari find perintah, tapi mereka bisa datang dari mana saja) dan mengeksekusi beberapa perintah untuk setiap string.
Jika xargs dijalankan dengan opsi -0 , itu akan mengharapkan string yang dipisahkan NULL sebagai keluaranfind ... -print0
Keuntungan dari xargs adalah bahwa ia dapat mengelompokkan string bersama, sehingga hanya mengeksekusi perintah sekali atau dua kali alih-alih n kali.
Jadi dalam penggunaan normal:
find start_directory -name '*.txt' | xargs ls -l
find akan mencantumkan nama file, dan xargs akan mengeluarkan perintah seperti:
ls -l file1.txt file2.txt file3.txt ... fileN.txt
yang lebih cepat daripada memiliki perintah find Anda mengeluarkan:
ls -l file1.txt
ls -l file2.txt
ls -l file3.txt
ls -l ...
ls -l fileN.txt
Perhatikan bahwa xargs tidak diperlukan lagi dengan implementasi find saat ini yang mungkin semuanya mendukung sintaks POSIX ini:
find directory -name '*.txt' -exec ls -l {} +
yang lebih sederhana dan sedikit lebih cepat dari varian xargs.
find directory -name '*.txt' | xargs ls -l
Lihat artikel berikut:
Linux dan Unix menemukan tutorial perintah dengan contoh
xargs: Cara Mengontrol dan Menggunakan Argumen Baris Perintah
sumber