คำถามติดแท็ก xargs

3
Piping find -name to xargs ส่งผลให้ชื่อไฟล์มีช่องว่างไม่ถูกส่งผ่านไปยังคำสั่ง
ปกติแล้วหากต้องการลบไฟล์ที่มีช่องว่างในชื่อไฟล์คุณจะต้องเรียกใช้: $ rm "file name" แต่ถ้าฉันต้องการลบหลายไฟล์เช่น: $ find . -name "*.txt" | xargs rm นี่จะไม่ลบไฟล์ที่มีช่องว่างในนั้น
26 command-line  find  rm  xargs 

4
“ xargs grep” ทำอะไร?
ฉันรู้grepคำสั่งและฉันกำลังเรียนรู้เกี่ยวกับฟังก์ชันการใช้งานของxargsดังนั้นฉันอ่านหน้านี้ซึ่งให้ตัวอย่างบางส่วนเกี่ยวกับวิธีการใช้xargsคำสั่ง ฉันสับสนโดยตัวอย่างล่าสุดตัวอย่างที่ 10 มันบอกว่า "คำสั่ง xargs ดำเนินการคำสั่ง grep เพื่อค้นหาไฟล์ทั้งหมด (ในบรรดาไฟล์ที่มาจากคำสั่ง find) ที่มีสตริง 'stdlib.h'" $ find . -name '*.c' | xargs grep 'stdlib.h' ./tgsthreads.c:#include ./valgrind.c:#include ./direntry.c:#include ./xvirus.c:#include ./temp.c:#include ... ... ... อย่างไรก็ตามสิ่งที่แตกต่างในการใช้ก็คือ $ find . -name '*.c' | grep 'stdlib.h' ? เห็นได้ชัดว่าฉันยังคงดิ้นรนกับสิ่งที่ xargs กำลังทำอยู่ดังนั้นความช่วยเหลือใด ๆ ที่ชื่นชม!

1
ความแตกต่างระหว่าง“ xargs” และการทดแทนคำสั่ง?
xargsในหลายกรณีผมใช้แทนคำสั่งแทน ตัวอย่างเช่นrm $(ls)เดียวกับls | xargs rm อะไรคือความแตกต่างระหว่างพวกเขาจริง ๆ ? ฉันคิดว่าหนึ่งในความแตกต่างคือการทดแทนคำสั่งที่ทำงานใน subshell ในขณะที่xargsทำงานในเปลือกปัจจุบัน แต่ฉันไม่แน่ใจ กรุณาระบุความแตกต่าง
14 bash  xargs 

1
อาร์กิวเมนต์คำสั่ง Bash $ {…}
ฉันสังเกตเห็นอาร์กิวเมนต์คำสั่งประเภทนี้ในสคริปต์ทุบตี: node ${debug?--nocrankshaft --nolazy --nodead_code_elimination --debug-brk=15454} app.js ฉันสงสัยว่า${....}หมายถึงอะไร? มันใช้งานอย่างไร? นอกจากนี้ยังมีแหล่งข้อมูลที่ดีที่กล่าวถึงการเปลี่ยนแปลงคำสั่งอาร์กิวเมนต์ที่แตกต่างกันทั้งหมดสำหรับการทุบตี?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.