ããã¯åå¿é²ã è²ã ãã£ã¦ãã¾ã å ·ä½çãªã¢ããä½ãä½ã£ã¦ããªãã®ã«ã·ã§ã«ã¹ã¯ãªããã®ããã©ã¼ãã³ã¹çµ¡ã¿ã§ãã¿ãåéãã¦ãã¾ã£ãã®ã§ãã²ã¨ã¾ãã¾ã¨ãã¦ã¿ãã shellshockï¼bashã®ã¢ã¬ï¼ããã£ãã°ãããªã®ã§ãã¡ã£ã¨ã°ããå¾®å¦ããã è¨æ¸¬ãã¦ããã«ããã¯ãæ¢ã ã¾ãã¯ä½ãããè¨æ¸¬ãããã¨ãtime(1)ãæ´»ç¨ãã¹ãã ãã¼ã¿éãå¤ãã¨åé¡ã表é¢åããã®ãå®çªã®ãã¿ã¼ã³ãªã®ã§ãã¯ã³ã©ã¤ãã¼çã§ããã£ã¨ãã¹ããã¼ã¿ã使ãã¦å®é¨ããã¨åã ã«ã¼ãæ§æãããããã¹ããã£ã«ã¿ã使ã ä¸è¬çã«ã¯ãã«ã¼ãæ§æã使ããããããã¤ãã§ããã¹ããã£ã«ã¿ã«é£çµãã¦å¦çããæ¹ãé«éã ã # NG seq 1 1000000 | while read i; do echo "$i"; done # NG # while readã»ã©ã§ã¯ãªããé ã # ï¼bashã§ã¯åããããdashãbusyboxã®shã§
xargs ã§è¤æ°è¡ã®ã³ãã³ããå®è¡ãããã åºæ¥ãªãã»ã»ã» ls *.txt | xargs -I@ echo @ ; sleep 1 forã«ã¼ããªãã§ãããã ãã©ãfor ã«ã¼ãã ã¨ã©ããã¦ãä¸ä¾¿ã xargs ã§ã·ã§ã«ã³ãã³ããä½ã£ã¦æ¸¡ã. xargs ã ã¨éçãããã®ã§ãããã·ã§ã«ã®æååã«ãã¦æ¸¡ããããä»ã«é¸æè¢ããªãã ls *.txt | xargs -I@ sh -c 'echo @ ; sleep 1' ãããªãåããã§ããåããã§ãã xargs ãï¼ã¤å®è¡ãããã³ã«ã sh -c 'echo @ ' ã®@ ã®é¨åã«ãã¡ã¤ã«ãæååã¨ãã¦å ¥ãã¦æ¸¡ãã¦ãããã bash ã§ããã sh ã ã¨æ©è½ãå°ãªãã®ã§ãbashã«ãã¦ããã¨ããææ®µãåããã ls *.txt | xargs -I@ bash -c 'echo @ ; sleep 1' æ¡ä»¶åå²ã ããããã¾ã§ãã
ruby ã§åæå¦çã®ã¹ã¬ããå¶å¾¡ãã§ã¹ã¬ããå¶å¾¡ããªããããã¥ã¼ã使ããã³ãã³ãã並åå®è¡ãã¦ããã ããèãããããããªè»è¼ªã®åçºæãªã©ããªãã¦ãå 人ã®ç¥æµãåããã»ããæ¥½ããã 調ã¹ã¦ã¿ããxargsã«åæå®è¡ã®ãªãã·ã§ã³ãããã®ã確èªããã max-procsã®ãã®ãªãã·ã§ã³ãç¥ã£ã¦ããã£ããè¦ããã¦ã® find -exec æãæ¨ã¦ãããªã£ã xargs æå¼·ãããªãã§ããã xargs ã«ã³ãã³ãã並åå®è¡ããæ¹æ³ãããã -P/ --max-procs ãªãã·ã§ã³ --max-procs=max-procs -P max-procs Run up to max-procs processes at a time; the default is 1. If max-procs is 0, xargs will run as many processes as possib
xargs ã¯ä¾¿å©ãªã³ãã³ãã§ãã xargs ã使ããã¨ã«ãããè¤éãªããã°ã©ãã³ã°ãããªãã§ããæè»½ã«ä¸¦åå¦çãå®ç¾ã§ãã¾ãã æºå å®é¨ç°å¢ ä»åå®é¨ã«å©ç¨ããç°å¢ã¯ CentOS 6.4 ã§ãã xargs 㯠Linux 系㨠BSD ç³»ã§ãªãã·ã§ã³ãç°ãªãã¾ãã®ã§ããæ³¨æä¸ããã å®é¨ç¨ã¹ã¯ãªãã ä»åã®å®é¨ã«å©ç¨ããã¹ã¯ãªããã§ãããã®ã¹ã¯ãªããã xargs ã®å¼æ°ã«æ¸¡ãã¾ãã 以éããã®ã¹ã¯ãªããã®æ§ã« xargs ã«æ¸¡ãã³ãã³ããã xargs 弿°ã³ãã³ã ã¨å¼ã¶ãã¨ã«ãã¾ãã #!/bin/sh # å®è¡æéãæ¬æ sleep 1 # ã³ãã³ã弿°è¡¨ç¤ºæã®æå¤§æåæ° max_len=50 # æå¤§æåæ°ãè¶ ããå ´åã®ããªãã³ã° a=$@ if [ $max_len -lt ${#a} ] then a="${a:0:$max_len}..." fi # ããã»ã¹çªå·
<ITæè¡ã®å¦æ¹ç®ï¼æå®æ¥ä»ä»¥åã®å¤ããã¡ã¤ã«ãåé¤ãããç§»åããæ¹æ³> ã·ã¹ãã ãéç¨ãã¦ããã¨ã ãã°ãã¡ã¤ã«ããã¼ã¿ãã¡ã¤ã«ãªã©ã ã©ãã©ãæºã¾ã£ã¦ããã¾ããã ãããªãã¡ã¤ã«ããã¤ãã¯ç§»åãããåé¤ããå¿ è¦ãããã¾ããã âããã«ã¯ãfindã¨xargsããã¾ã使ãã¨ã³ãã³ãä¸çºã§å¯¾å¦ã§ãã¾ãã ï¼ä¾ï¼ï¼ find ./ -mtime +50 -name "*.txt" | xargs mv --target-directory=./aaa ãã¡ã¤ã«åã«.txtãã¤ãã¦ãæå¾ã«ä¿®æ£ãããã®ãï¼ï¼æ¥ããåã®ãã®ãã aaaã¨ãããã£ã¬ã¯ããªã«ç§»åãããæ¹æ³ã§ãã ï¼ä¾ï¼ï¼ find ./ -mtime +50 -name "*.txt" | xargs rm -f ãã¡ã¤ã«åã«.txtãã¤ãã¦ãæå¾ã«ä¿®æ£ãããã®ãï¼ï¼æ¥ããåã®ãã®ãã åé¤ããæ¹æ³ã§ãã ï¼è§£èª¬ï¼ xargsã¯ãæ¨
ãã£ããã§ãããã¨æã£ããæå¤ã«æéãæãã£ã¦ãã¾ã£ãã®ã§çºãã¦ããã ãã¤ã³ãã¯2ç¹ã§ã export -f 颿°å ãã¦ãã xargsã§ã¯bash -c "ã³ãã³ã" ãå®è¡ãã ã§è¡ããã ä¾ ãã¹ã«ãã®basenameããçµæãTABåºåãã§é£çµããã ãã®æååãechoãã颿°ãå®ç¾©ããã $ function echo_with_basename(){ > echo -e "$1\t`basename $1`" # -eãªãã·ã§ã³ãç¡ãã¨\tãTABã«å¤æãããªã > }ãã®é¢æ°ã次ã®ããã«ãã¡ã¤ã«ãªã¹ããåºåããçµæããã¤ãã§ç¹ãxargsã«æ¸¡ãã $ cat filelist.txt /home/wrist/data/A00000.txt /home/wrist/data/A00001.txt /home/wrist/data/A00002.txt /home/wrist
xargs ã® -P ãªãã·ã§ã³ã使ãã¨ããã»ã¹ãè¤æ°èµ·åãã¦å¦çã並åã«è¡ãªããã¨ãåºæ¥ãã ä¾ ä¾ãã°ã 1 ä¸æã® JPEG ç»åãå ¨ã¦ 800x800 ã«åã¾ãããã«å¹çè¯ããªãµã¤ãºãããã ã¾ãç§ã¯ãã®ãããªã³ãã³ããèããã convert --geometry 800x800 *.jpg ããã zsh ã«æãããã zsh: argument list too long: convert 弿°ãå ¨ã¦å±éããããããã®ãããªäºãèµ·ããã ç§ã¯ xargs ã使ã£ã¦å¦çãããã¨ãæãä»ããã ls | xargs -I{} convert --geometry 800x800 {} c_{} å¦çã¯è¡ãªããããé常ã«é ãã ããã CPU ãå ¨ã使ã£ã¦ããªããã¨ãåãããç§ã¯å¦çã並åçã«è¡ãªãäºãèããã ããã§ xargs ã® -P ãªãã·ã§ã³ã®åºçªã§ããã P ã®å¾ã«ä¸¦å
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}