พิจารณาคำสั่งนี้:
ls /mydir/*.txt | xargs chown root
ความตั้งใจที่จะเปลี่ยนเจ้าของไฟล์ข้อความทั้งหมดmydir
เป็นรูท
ปัญหาคือว่าถ้าไม่มี.txt
ไฟล์ในmydir
xargs แล้ว thows ข้อผิดพลาดบอกว่าไม่มีเส้นทางที่ระบุ นี่เป็นตัวอย่างที่ไม่เป็นอันตรายเนื่องจากมีข้อผิดพลาดเกิดขึ้น แต่ในบางกรณีเช่นในสคริปต์ที่ฉันต้องใช้ที่นี่พา ธ ว่างจะถือว่าเป็นไดเรกทอรีปัจจุบัน ดังนั้นถ้าฉันเรียกใช้คำสั่ง/home/tom/
นั้นถ้าไม่มีผลลัพธ์ls /mydir/*.txt
และไฟล์ทั้งหมดภายใต้/home/tom/
มีเจ้าของเปลี่ยนเป็นรูต
ดังนั้นฉันจะให้ xargs เพิกเฉยกับผลลัพธ์ที่ว่างเปล่าได้อย่างไร
git branch --merged | grep -v '^* ' | xargs git branch -d
ซึ่งยังล้มเหลวในการป้อนข้อมูลที่ว่างเปล่า
ls
การใช้งานแบบเป็นโปรแกรม ดูmywiki.wooledge.org/ParsingLs