12 ຕົວຢ່າງພາກປະຕິບັດຂອງ Linux Xargs Command ສຳ ລັບຜູ້ເລີ່ມຕົ້ນ


Xargs ແມ່ນ ຄຳ ສັ່ງທີ່ດີທີ່ອ່ານກະແສຂໍ້ມູນຈາກການປ້ອນຂໍ້ມູນແບບມາດຕະຖານ, ຈາກນັ້ນສ້າງແລະປະຕິບັດບັນດາ ຄຳ ສັ່ງ; ຫມາຍຄວາມວ່າມັນສາມາດເອົາຜົນຜະລິດຂອງຄໍາສັ່ງແລະຜ່ານມັນເປັນການໂຕ້ຖຽງຂອງຄໍາສັ່ງອື່ນ. ຖ້າບໍ່ມີ ຄຳ ສັ່ງໃດຖືກ ກຳ ນົດ, xargs ຈະປະຕິບັດຕາມສຽງຄືເກົ່າ. ທ່ານຫຼາຍຄົນຍັງແນະ ນຳ ໃຫ້ອ່ານຂໍ້ມູນຈາກແຟ້ມແທນທີ່ຈະເປັນ stdin.

ມີຫລາຍວິທີໃນການທີ່ xargs ມີປະໂຫຍດໃນການໃຊ້ ຄຳ ສັ່ງປະ ຈຳ ວັນ. ໃນບົດຂຽນນີ້, ພວກເຮົາຈະອະທິບາຍຕົວຢ່າງ ຄຳ ສັ່ງ Linux xargs 12 ພາກປະຕິບັດຕົວຈິງ ສຳ ລັບຜູ້ເລີ່ມຕົ້ນ.

1. ຕົວຢ່າງ ທຳ ອິດສະແດງວິທີການຊອກຫາຮູບພາບ .png ທັງ ໝົດ ແລະເກັບມ້ຽນຂໍ້ມູນເຫລົ່ານັ້ນໂດຍໃຊ້ tar tar ດັ່ງຕໍ່ໄປນີ້.

ໃນທີ່ນີ້ ຄຳ ສັ່ງປະຕິບັດ -print0 ຊ່ວຍໃຫ້ການພິມເສັ້ນທາງເຕັມຂອງໄຟລ໌ຕາມຜົນໄດ້ຮັບມາດຕະຖານ, ຕິດຕາມດ້ວຍຕົວອັກສອນຫຍໍ້ແລະ -0 ທຸງ xargs ມີປະສິດຕິຜົນກ່ຽວກັບພື້ນທີ່ໃນ filenames.

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

2. ທ່ານຍັງສາມາດປ່ຽນຜະລິດຕະພັນແບບ muti-line ຈາກ ຄຳ ສັ່ງ ls ເປັນ line ດຽວໂດຍໃຊ້ xargs ດັ່ງຕໍ່ໄປນີ້.

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

3. ເພື່ອສ້າງບັນຊີລາຍຊື່ກະທັດຮັດຂອງບັນຊີຜູ້ໃຊ້ Linux ທັງ ໝົດ ໃນລະບົບ, ໃຫ້ໃຊ້ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

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

4. ສົມມຸດວ່າທ່ານມີລາຍຊື່ແຟ້ມແລະທ່ານຕ້ອງການຮູ້ ຈຳ ນວນເສັ້ນ/ຄຳ/ລັກສະນະໃນແຕ່ລະເອກະສານໃນບັນຊີ, ທ່ານສາມາດໃຊ້ ls command ແລະ 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 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. ທ່ານສາມາດເປີດໃຊ້ verbosity ໂດຍໃຊ້ -t ທຸງ, ເຊິ່ງບອກໃຫ້ xargs ພິມເສັ້ນ ຄຳ ສັ່ງໃສ່ຜົນໄດ້ຮັບຜິດພາດມາດຕະຖານກ່ອນທີ່ຈະປະຕິບັດມັນ.

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

12. ໂດຍຄ່າເລີ່ມຕົ້ນ, xargs ສິ້ນສຸດ/ລຶບລາຍການໂດຍໃຊ້ພື້ນທີ່ຫວ່າງ, ທ່ານສາມາດໃຊ້ທຸງ -d ເພື່ອ ກຳ ນົດຂອບເຂດທີ່ອາດຈະເປັນຕົວລະດຽວ, ລັກສະນະຫຼົບ ໜີ ແບບ C ແບບເຊັ່ນ: \n , ຫຼືລະຫັດຫລົບ ໜີ ເປັນ octal ຫຼື hexadecimal.

ນອກຈາກນັ້ນ, ທ່ານຍັງສາມາດກະຕຸ້ນຜູ້ໃຊ້ກ່ຽວກັບວ່າຈະ ດຳ ເນີນການແຕ່ລະເສັ້ນ ຄຳ ສັ່ງແລະອ່ານເສັ້ນທາງຈາກສະຖານີ, ໂດຍໃຊ້ -p ທຸງດັ່ງທີ່ສະແດງ (ພຽງແຕ່ພິມ y ສຳ ລັບ ແມ່ນຫລື n ໂດຍບໍ່ມີ).

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

ສຳ ລັບຂໍ້ມູນເພີ່ມເຕີມ, ອ່ານ ໜ້າ man xargs.

$ man xargs 

ນັ້ນແມ່ນ ສຳ ລັບດຽວນີ້! Xargs ແມ່ນປະໂຫຍດທີ່ມີປະສິດທິພາບໃນການສ້າງເສັ້ນ ຄຳ ສັ່ງ; ມັນສາມາດຊ່ວຍໃຫ້ທ່ານສາມາດສົ່ງຜົນຜະລິດຈາກ ຄຳ ສັ່ງ ໜຶ່ງ ຄຳ ເປັນການໂຕ້ຖຽງຂອງ ຄຳ ສັ່ງອື່ນ ສຳ ລັບການປະມວນຜົນ. ໃນບົດຂຽນນີ້, ພວກເຮົາໄດ້ອະທິບາຍຕົວຢ່າງ ຄຳ ສັ່ງ xargs ຕົວຈິງ 12 ຕົວ ສຳ ລັບຜູ້ເລີ່ມຕົ້ນ. ແບ່ງປັນຄວາມຄິດຫລື ຄຳ ຖາມຕ່າງໆກັບພວກເຮົາຜ່ານແບບຟອມ ຄຳ ເຫັນຂ້າງລຸ່ມນີ້.