ค้นหาเว็บไซต์

12 ตัวอย่างการใช้งานจริงของคำสั่ง Linux Xargs สำหรับผู้เริ่มต้น


Xargs เป็นคำสั่งที่ดีในการอ่านกระแสข้อมูลจากอินพุตมาตรฐาน จากนั้นจึงสร้างและดำเนินการบรรทัดคำสั่ง หมายความว่าสามารถรับเอาต์พุตของคำสั่งและส่งผ่านเป็นอาร์กิวเมนต์ของคำสั่งอื่นได้ หากไม่มีการระบุคำสั่ง xargs จะดำเนินการ echo ตามค่าเริ่มต้น หลายๆ คนยังสั่งให้มันอ่านข้อมูลจากไฟล์แทน stdin

มีหลายวิธีที่ xargs มีประโยชน์ในการใช้งานบรรทัดคำสั่งในแต่ละวัน ในบทความนี้ เราจะอธิบายตัวอย่างคำสั่ง xargs ของ Linux ที่เป็นประโยชน์ 12 ตัวอย่างสำหรับผู้เริ่มต้น

1. ตัวอย่างแรกจะแสดงวิธีค้นหารูปภาพ .png ทั้งหมด และเก็บถาวรโดยใช้ยูทิลิตี้ tar ดังต่อไปนี้

ที่นี่ คำสั่งการดำเนินการ -print0 ช่วยให้สามารถพิมพ์พาธไฟล์แบบเต็มบนเอาต์พุตมาตรฐาน ตามด้วยอักขระ null และแฟล็ก -0 xargs จัดการกับพื้นที่ในชื่อไฟล์ได้อย่างมีประสิทธิภาพ

find Pictures/tecmint/ -name "*.png" -type f -print0 | xargs -0 tar -cvzf images.tar.gz

2. คุณยังสามารถแปลงเอาต์พุต muti-line จากคำสั่ง ls ให้เป็นบรรทัดเดียวได้โดยใช้ xargs ดังต่อไปนี้

ls -1 Pictures/tecmint/
ls -1 Pictures/tecmint/ | xargs

3. หากต้องการสร้างรายการบัญชีผู้ใช้ Linux ทั้งหมดบนระบบแบบย่อ ให้ใช้คำสั่งต่อไปนี้

cut -d: -f1 < /etc/passwd | sort | xargs

4. สมมติว่าคุณมีรายการไฟล์ และคุณต้องการทราบจำนวน บรรทัด/คำ/อักขระ ในแต่ละไฟล์ในรายการ คุณสามารถใช้คำสั่ง ls และ xargs เพื่อจุดประสงค์นี้ดังต่อไปนี้

ls *upload* | xargs wc

5. Xarags ยังช่วยให้คุณค้นหาและลบไดเร็กทอรีแบบวนซ้ำ ตัวอย่างเช่น คำสั่งต่อไปนี้จะลบ DomTerm ในไดเร็กทอรี ดาวน์โหลด แบบวนซ้ำ

find Downloads -name "DomTerm" -type d -print0 | xargs -0 /bin/rm -v -rf "{}"

6. เช่นเดียวกับคำสั่งก่อนหน้า คุณสามารถค้นหาไฟล์ทั้งหมดชื่อ net_stats ในไดเรกทอรีปัจจุบันและลบออกได้

find . -name "net_stats" -type f -print0 | xargs -0 /bin/rm -v -rf "{}"

7. จากนั้น ใช้ xargs เพื่อคัดลอกไฟล์ไปยังหลายไดเรกทอรีพร้อมกัน ในตัวอย่างนี้เรากำลังพยายามคัดลอกไฟล์

echo ./Templates/ ./Documents/ | xargs -n 1 cp -v ./Downloads/SIC_Template.xlsx 

8. คุณยังสามารถใช้คำสั่ง find, xargs และเปลี่ยนชื่อคำสั่งร่วมกันเพื่อเปลี่ยนชื่อไฟล์หรือไดเรกทอรีย่อยทั้งหมดในไดเรกทอรีใดไดเรกทอรีหนึ่งให้เป็นตัวพิมพ์เล็กดังต่อไปนี้

find Documnets -depth | xargs -n 1 rename -v 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;

9. นี่เป็นอีกตัวอย่างการใช้งานที่มีประโยชน์สำหรับ xargs ซึ่งแสดงวิธีการลบไฟล์ทั้งหมดภายในไดเร็กทอรี ยกเว้นไฟล์หนึ่งหรือสองสามไฟล์ที่มีนามสกุลที่กำหนด

find . -type f -not -name '*gz' -print0 | xargs -0 -I {} rm -v {}

10. ตามที่กล่าวไว้ข้างต้น คุณสามารถสั่งให้ xargs อ่านรายการจากไฟล์แทนอินพุตมาตรฐานได้โดยใช้แฟล็ก -a ดังที่แสดง

xargs -a rss_links.txt

11. คุณสามารถเปิดใช้งานการใช้คำฟุ่มเฟือยได้โดยใช้แฟล็ก -t ซึ่งจะบอกให้ xargs พิมพ์บรรทัดคำสั่งบนเอาต์พุตข้อผิดพลาดมาตรฐานก่อนที่จะดำเนินการ

find Downloads -name "DomTerm" -type d -print0 | xargs -0 -t /bin/rm -rf "{}"

12. ตามค่าเริ่มต้น xargs จะสิ้นสุด/กำหนดขอบเขตรายการโดยใช้ช่องว่าง คุณสามารถใช้แฟล็ก -d เพื่อตั้งค่าตัวคั่นซึ่งอาจเป็น อักขระตัวเดียว อักขระหลีกแบบ C เช่น \n หรือโค้ดหลีกฐานแปดหรือเลขฐานสิบหก

นอกจากนี้ คุณยังสามารถแจ้งให้ผู้ใช้ทราบว่าจะรันแต่ละบรรทัดคำสั่งและอ่านบรรทัดจากเทอร์มินัลหรือไม่ โดยใช้แฟล็ก -p ดังที่แสดง (เพียงพิมพ์ y สำหรับ ใช่ หรือ n สำหรับ ไม่)

echo ./Templates/ ./Documents/ | xargs -p -n 1 cp -v ./Downloads/SIC_Template.xlsx 

สำหรับข้อมูลเพิ่มเติม โปรดอ่านหน้าคู่มือ xargs

man xargs 

แค่นั้นแหละ! Xargs เป็นโปรแกรมอรรถประโยชน์ที่มีประสิทธิภาพสำหรับการสร้างบรรทัดคำสั่ง มันสามารถช่วยให้คุณส่งผ่านเอาต์พุตของคำสั่งหนึ่งเป็นอาร์กิวเมนต์ของคำสั่งอื่นสำหรับการประมวลผล ในบทความนี้ เราได้อธิบายตัวอย่างคำสั่ง xargs ที่ใช้งานได้จริง 12 ตัวอย่างสำหรับผู้เริ่มต้น แบ่งปันความคิดหรือคำถามของคุณกับเราผ่านแบบฟอร์มคำติชมด้านล่าง