ฉันจะรับ xargs เพื่อแสดงบรรทัดคำสั่งที่สร้างโดยไม่ต้องรันได้อย่างไร


17

คำสั่ง linux จำนวนพอสมควรมีตัวเลือกการรันแบบแห้งซึ่งจะแสดงให้คุณเห็นว่าพวกเขากำลังทำอะไรโดยไม่ทำ ฉันไม่เห็นอะไรเลยในหน้า man ของ xargs ที่ทำสิ่งนั้นและไม่มีวิธีที่ชัดเจนในการลอกเลียนแบบ

(กรณีการใช้งานเฉพาะของฉันคือการแก้ไขปัญหาท่อยาว แต่ฉันแน่ใจว่ามีคนอื่น ๆ )

ฉันพลาดอะไรไปรึเปล่า?


คุณพยายามทำอะไร
ราหุล

คำตอบ:


16

ใส่echoคำสั่งด้านหน้าเพื่อเรียกใช้หรือไม่

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

5
(นี่เป็นเพียงวิธีแก้ปัญหาง่ายๆที่ทำงานในกรณีเล็ก ๆ น้อย ๆ ผลลัพธ์จะไม่ชัดเจนหากพารามิเตอร์มีช่องว่างหรืออักขระควบคุมเราต้องการเครื่องมือเฉพาะเพื่อพิมพ์พารามิเตอร์ที่ได้รับอย่างไม่น่าสงสัย)
ilkkachu

สิ่งที่เกี่ยวกับถ้าคุณกำลังพยายามที่จะแห้งวิ่งecho? :)
mbigras

31

คุณอาจได้รับประโยชน์จาก-pหรือ-tธง

xargs -pหรือxargs --interactiveจะพิมพ์คำสั่งที่จะดำเนินการแล้วแจ้งให้ป้อน (y / n) เพื่อยืนยันก่อนดำเนินการคำสั่ง

% 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 -tหรือxargs --verboseจะพิมพ์แต่ละคำสั่งจากนั้นเรียกใช้งานทันที:

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

% ls
list
one
three
two

1
คำตอบที่ยอดเยี่ยมกับทั้งสอง-pและ-tตัวเลือก ตัวอย่างที่ยอดเยี่ยม ขอขอบคุณ!
JCotton
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.