Bagaimana cara mendapatkan xargs untuk menunjukkan kepada saya baris perintah yang dihasilkan tanpa menjalankannya?


17

Sejumlah besar perintah linux memiliki opsi dry-run yang akan menunjukkan kepada Anda apa yang akan mereka lakukan tanpa melakukannya. Saya tidak melihat apa pun di halaman manual xargs yang melakukan itu dan tidak ada cara yang jelas untuk menirunya.

(use case spesifik saya adalah troubleshooting saluran pipa yang panjang, meskipun saya yakin ada yang lain)

Apakah saya melewatkan sesuatu?


apa yang sebenarnya ingin Anda lakukan?
Rahul

Jawaban:


16

Letakkan echodi depan perintah untuk dijalankan?

$ echo a b c d e | xargs -n2 echo rm
rm a b
rm c d
rm e

5
(Ini, tentu saja hanya solusi sederhana yang bekerja dalam kasus-kasus sepele. Outputnya akan ambigu jika parameternya berisi spasi atau karakter kontrol. Kami membutuhkan beberapa alat khusus untuk secara jelas mencetak parameter yang diterimanya.)
ilkkachu

Bagaimana jika Anda mencoba mengeringkan echo? :)
mbigras

31

Anda mungkin mendapat manfaat dari -patau -tbendera.

xargs -patau xargs --interactiveakan mencetak perintah yang akan dieksekusi dan kemudian meminta input (y / n) untuk mengkonfirmasi sebelum menjalankan perintah.

% cat list
one
two
three

% ls
list

% cat list | xargs -p -I {} touch {}
touch one ?...y
touch two ?...n
touch three ?...y

% ls
list
one
three

xargs -tatau xargs --verboseakan mencetak setiap perintah, lalu segera jalankan:

% cat list | xargs -t -I {} touch {}
touch one 
touch two 
touch three 

% ls
list
one
three
two

1
jawaban luar biasa dengan keduanya -pdan -topsi. contoh yang sangat baik. Terima kasih!
JCotton
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.