Using xargs in Linux
Talaan ng mga Nilalaman:
- Paano Gumamit ng Linux
xargsCommand - Paano Makita ang Utos at igawin ang Gumagamit
- Paano Limitahan ang Bilang ng Mga Pangangatwiran
- Paano Magpatakbo ng Maramihang Mga Utos
- Paano Tukuyin ang isang Delimiter
- Paano Magbasa ng Mga item mula sa File
- Paggamit ng
xargsmayfind - Paggamit ng xargs sa Trim Whitespace Character
- Konklusyon
Pinapayagan ka ng
xargs
utility na bumuo at magpatupad ng mga utos mula sa karaniwang pag-input. Karaniwang ginagamit ito kasama ang iba pang mga utos sa pamamagitan ng piping.
Sa
xargs
, maaari kang magbigay ng pamantayang pag-input bilang argument sa mga utility sa utos na tulad ng
mkdir
at
rm
.
Sa tutorial na ito, tatakpan namin ang mga pangunahing kaalaman sa paggamit ng utos ng
xargs
.
Paano Gumamit ng Linux
xargs
Command
Binasa ng
xargs
argumento mula sa karaniwang pag-input, na pinaghiwalay ng mga blangkong puwang o newlines, at isinasagawa ang tinukoy na utos gamit ang input bilang mga argumento ng command. Kung walang ibinigay na utos, ang default ay
/bin/echo
.
Ang syntax para sa utos ng
xargs
ay ang mga sumusunod:
xargs]
Ang pinaka-pangunahing halimbawa ng paggamit ng
xargs
ay upang maipasa ang ilang mga string na pinaghiwalay sa whitespace gamit ang isang pipe sa
xargs
at magpatakbo ng isang utos na gagamitin ang mga string na ito bilang mga argumento.
echo "file1 file2 file3" | xargs touch
Sa halimbawa sa itaas, piping namin ang karaniwang pag-input sa
xargs
, at ang
touch
command ay tatakbo para sa bawat argumento, na lumilikha ng tatlong mga file. Ito ay katulad ng kung tatakbo ka:
Paano Makita ang Utos at igawin ang Gumagamit
Upang i-print ang utos sa terminal bago isagawa ito gamitin ang opsyon na
-t
(
--verbose
):
echo "file1 file2 file3" | xargs -t touch
touch file1 file2 file3
echo "file1 file2 file3" | xargs -p touch
I-type ang
y
o
Y
upang kumpirmahin at patakbuhin ang utos:
touch file1 file2 file3 ?…y
Ang pagpipiliang ito ay kapaki-pakinabang kapag nagsasagawa ng mapanirang mga utos.
Paano Limitahan ang Bilang ng Mga Pangangatwiran
Bilang default, ang bilang ng mga argumento na ipinasa sa utos ay natutukoy sa pamamagitan ng limitasyon ng system.
Ang opsyon na
-n
(
--max-args
) ay tumutukoy sa bilang ng mga argumento na maipasa sa ibinigay na utos.
xargs
nagpapatakbo ng tinukoy na utos nang maraming beses hangga't kinakailangan hanggang sa maubos ang lahat ng mga argumento.
Sa sumusunod na halimbawa, ang bilang ng mga argumento na nabasa mula sa karaniwang pag-input ay limitado sa 1.
echo "file1 file2 file3" | xargs -n 1 -t touch
Tulad ng nakikita mo mula sa output ng pandiwa sa ibaba, ang touch command ay isinasagawa nang hiwalay para sa bawat argumento:
touch file1 touch file2 touch file3
Paano Magpatakbo ng Maramihang Mga Utos
Upang magpatakbo ng maraming mga utos na may
xargs
, gamitin ang pagpipilian ng
-I
. Gumagana ito sa pamamagitan ng pagtukoy ng isang
replace-str
pagkatapos ng pagpipilian ng
-I
at ang lahat ng mga pangyayari ng
replace-str
ay pinalitan ng argumento na ipinasa sa xargs.
Ang sumusunod na halimbawa ng
xargs
ay magpapatakbo ng dalawang utos, una itong lilikha ng mga file gamit ang
touch
, at pagkatapos ay ililista nito ang mga file na may utos ng
ls
:
echo "file1 file2 file3" | xargs -t -I % sh -c '{ touch %; ls -l %; }'
-rw-r--r-- 1 linuxize users 0 May 6 11:54 file1 -rw-r--r-- 1 linuxize users 0 May 6 11:54 file2 -rw-r--r-- 1 linuxize users 0 May 6 11:54 file3
Ang isang karaniwang pagpipilian para sa
replace-str
ay
%
. Gayunpaman, maaari kang gumamit ng isa pang placeholder, halimbawa,
ARGS
:
echo "file1 file2 file3" | xargs -t -I ARGS sh -c '{ touch ARGS; ls -l ARGS; }'
Paano Tukuyin ang isang Delimiter
Gamitin ang opsyon na
-d
(
--delimiter
) upang magtakda ng isang pasadyang delimiter, na maaaring maging isang solong character o isang pagkakasunud-sunod na pagtakas na nagsisimula sa
\
.
Ang sumusunod na halimbawa na ginagamit namin
;
bilang isang delimiter:
echo "file1;file2;file3" | xargs -d ; -t touch
Paano Magbasa ng Mga item mula sa File
Ang utos ng xargs ay maaari ring magbasa ng mga item mula sa isang file sa halip na karaniwang input. Upang gawin ito, gamitin ang opsyon na
-a
(
--arg-file
) na sinusundan ng pangalan ng file.
Sa sumusunod na halimbawa, babasahin ng
xargs
utos ang
ips.txt
file at ping bawat IP Address.
8.8.8.8 1.1.1.1
Ginagamit din namin ang pagpipilian na
-L 1
, na nagtuturo sa
xargs
na basahin ang isang linya sa oras. Kung ang pagpipiliang ito ay tinanggal na
xargs
ay ipapasa ang lahat ng mga IP sa isang solong utos ng
ping
.
xargs -t -L 1 -a ips.txt ping -c 1
ping -c 1 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. 64 bytes from 8.8.8.8: icmp_seq=1 ttl=50 time=68.1 ms… ping -c 1 1.1.1.1 PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data. 64 bytes from 1.1.1.1: icmp_seq=1 ttl=59 time=21.4 ms
Paggamit ng
xargs
may
find
xargs
ay madalas na ginagamit sa pagsasama sa
find
command. Maaari kang gumamit ng
find
upang maghanap para sa mga tukoy na file at pagkatapos ay gumamit ng
xargs
upang maisagawa ang mga operasyon sa mga file na iyon.
Upang maiwasan ang mga isyu sa mga pangalan ng file na naglalaman ng mga newlines o iba pang mga espesyal na character, palaging gamitin ang pagpipilian na find
-print0
, na nagiging sanhi ng pag-print ng buong pangalan ng file na sinundan ng isang null character. Ang output na ito ay maaaring wastong bigyang kahulugan ng
xargs
gamit ang
-0
, (
--null
) na pagpipilian.
Sa sumusunod na halimbawa,
find
mai-print ang buong pangalan ng lahat ng mga file sa loob ng
/var/www/.cache
direktoryo at
xargs
ay ipapasa ang mga landas ng file sa utos ng
rm
:
find /var/www/.cache -type f -print0 | xargs -0 rm -f
Paggamit ng xargs sa Trim Whitespace Character
xargs
maaari ding magamit bilang isang tool upang alisin ang whitespace mula sa magkabilang panig ng isang naibigay na string. I-pipe lamang ang string sa utos ng
xargs
, at gagawin nito ang pag-trim:
echo " Long line " | xargs
Long line
Ito ay maaaring maging kapaki-pakinabang kapag paghahambing ng mga string sa mga script ng shell.
#!/bin/bash VAR1=" Linuxize " VAR2="Linuxize" if]; then echo "Strings are equal." else echo "Strings are not equal." fi ## Using xargs to trim VAR1 if]; then echo "Strings are equal." else echo "Strings are not equal." fi
Strings are not equal. Strings are equal.
Konklusyon
xargs
ay isang utility-line utility sa Linux na nagbibigay-daan sa iyo upang makabuo at magpatupad ng mga utos.
Para sa mas detalyadong impormasyon tungkol sa bawat pagpipilian sa
xargs
, basahin ang pahina ng xargs man page.
Mga pangunahing utos ng linux
Ang pag-alam kung paano gamitin ang command line ay maaaring maging kapaki-pakinabang. Sa artikulong ito, pupunta kami sa ilan sa mga pinaka-karaniwang utos ng Linux na ginagamit sa pang-araw-araw na batayan ng mga administrator ng system ng Linux.
Utos ng Chmod sa linux (mga pahintulot ng file)
Sa pag-access sa Linux sa mga file ay pinamamahalaan sa pamamagitan ng mga pahintulot ng file, katangian at pagmamay-ari. Sakop ng tutorial na ito kung paano gamitin ang chmod na utos upang mabago ang mga pahintulot sa pag-access ng mga file at direktoryo.
Utos ng Chgrp sa linux (pagbabago ng grupo)
Sa Linux, ang bawat file ay nauugnay sa isang may-ari at isang grupo at may mga pahintulot na matukoy kung aling mga gumagamit ang maaaring basahin, isulat, o isagawa ang file. Binago ng utos ng chgrpc ang pagmamay-ari ng grupo ng mga naibigay na file.







