Next: Querying, Previous: Single File, Up: Run Commands [Contents][Index]
°ìÅ٤˰ì¤Ä¤º¤Ä¤Î¥Õ¥¡¥¤¥ë¤ò½èÍý¤¹¤ëɬÍפ¬¤¢¤ë»þ¤â¤¢¤ê¤Þ¤¹¡¥¤·¤«¤·¡¤¤³¤ì ¤ÏÉÔÍפǡ¤¥Õ¥¡¥¤¥ë¤´¤È¤Ë¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤è¤ê¡¤¤Ç¤¤ë¤À¤±Â¿¤¯¤Î¥Õ¥¡¥¤ ¥ë¤ò¥³¥Þ¥ó¥É¤Ç¼Â¹Ô¤·¤¿Êý¤¬Â®¤¯¤Ê¤ê¤Þ¤¹¡¥¤³¤¦¤¹¤ë¤³¤È¤Ç¡¤¤½¤ì¤¾¤ì¤Î¥³¥Þ ¥ó¥É¤ò³«»Ï¤¹¤ë»þ´Ö¤ò²Ô¤°¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡¥
‘-execdir’¤È‘-exec’¥¢¥¯¥·¥ç¥ó¤Ë¤Ï¡¤¤Ç¤¤ë¤À¤±Â¿¤¯¤Î¥Þ¥Ã¥Á¤·¤¿ ¥Õ¥¡¥¤¥ë¤ò´Þ¤à¥³¥Þ¥ó¥É¥é¥¤¥ó¤ò¹½ÃÛ¤¹¤ë°¡¼ï¤¬¤¢¤ê¤Þ¤¹¡¥
¤³¤ì¤Ï‘-execdir command ;’¤ÈƱ¤¸¤è¤¦¤Ëưºî¤·¤Þ¤¹¤¬¡¤¥³¥Þ¥ó¥É¤Î½ª¤ï ¤ê¤Î‘{}’¤Ï¥Þ¥Ã¥Á¤·¤¿¥Õ¥¡¥¤¥ë¤Î̾Á°¤Î¥ê¥¹¥È¤Ë¤Ê¤ê¤Þ¤¹¡¥¤³¤ÎŸ³«¤Ï¡¤ ¥·¥¹¥Æ¥à¤ÇÍøÍѲÄǽ¤Ê¥³¥Þ¥ó¥É¥é¥¤¥ó¤ÎºÇÂç¤ÎŤµ¤ò±Û¤¨¤Ê¤¤¤è¤¦¤Ë¹Ô¤ï¤ì¤Þ ¤¹¡¥¥³¥Þ¥ó¥É¤Ë¤Ï°ì¤Ä¤Î‘{}’¤À¤±¤¬²Äǽ¤Ç¡¤‘+’¤ÎľÁ°¤Ë¡¤ºÇ¸å¤Ë ½ñ¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡¥‘{}’ľ¸å°Ê³°¤Î°ÌÃ֤ˤ¢¤ë‘+’¤Ï¡¤ÆÃḚ̂·¤¤ ¤µ¤ì¤Þ¤»¤ó(¤Ä¤Þ¤ê¡¤¥³¥Þ¥ó¥É¤Î½ªÃ¼¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó)¡¥
¤³¤Î¡¤Í¾¤ê¥»¥¥å¥ê¥Æ¥£¡¼¤Î¹â¤¯¤Ê¤¤‘-execdir’¥¢¥¯¥·¥ç¥ó¤Î°¡¼ï¤Ï¡¤
POSIX¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¤â¤Î¤Ç¤¹¡¥¼ç¤Ê°ã¤¤¤Ï¡¤find
¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿¥Ç¥£
¥ì¥¯¥È¥ê¤Ç¥³¥Þ¥ó¥É¤¬¼Â¹Ô¤µ¤ì¤ë¤È¤¤¤¦¤³¤È¤Ç¡¤‘{}’¤¬¡¤¥Þ¥Ã¥Á¤·¤¿¥Õ¥¡
¥¤¥ë¤Î¥Ù¡¼¥¹Ì¾¤Ç¤Ï¤Ê¤¯¡¤³«»Ï¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹¤ËŸ³«¤µ¤ì¤ë¤³¤È
¤ò°ÕÌ£¤·¤Þ¤¹¡¥
find
¤¬½ªÎ»¤¹¤ëÁ°¤Ë¡¤ÉôʬŪ¤Ë¹½ÃÛ¤µ¤ì¤¿¥³¥Þ¥ó¥É¥é¥¤¥ó¤¬¼Â¹Ô¤µ¤ì¤Þ
¤¹¡¥¤³¤ì¤Ï¡¤‘-quit’¥¢¥¯¥·¥ç¥ó¤Ç½ªÎ»¤µ¤ì¤¿¾ì¹ç¤â¤½¤¦¤Ê¤ê¤Þ¤¹¡¥¤·¤«
¤·¡¤¥¨¥é¡¼¤Î·Á¼°¤Ë¤è¤Ã¤Æ¤Ï(Î㤨¤Ðstat()
¤Î¸Æ¤Ó½Ð¤·¤¬¥«¥ì¥ó¥È¥Ç¥£
¥ì¥¯¥È¥ê¤ÇÉÔ²Äǽ)¡¤Ä¾¸å¤ËÃ×̿Ū¤Ê½ªÎ»¤Ë¤Ê¤ê¤Þ¤¹¡¥¤³¤Î¾õ¶·¤Ç¤Ï¡¤ÉôʬŪ¤Ë
¹½ÃÛ¤µ¤ì¤¿¥³¥Þ¥ó¥ÉÍé°ø¤Ï¸Æ¤Ó½Ð¤µ¤ì¤Þ¤»¤ó(¤³¤ì¤Ç¡¤Ìµ¸Â¥ë¡¼¥×¤òÍ޻ߤ·¤Þ
¤¹)¡¥
¤â¤¦°ì¤Ä¤Î¡¤Í¾¤ê¥»¥¥å¥ê¥Æ¥£¤Ï¹â¤¯¤¢¤ê¤Þ¤»¤ó¤¬¡¤°ìÅ٤˰ì¤Ä°Ê¾å¤Î¥Õ¥¡¥¤
¥ë¤Ç¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ëÊýË¡¤Ï¡¤xargs
¥³¥Þ¥ó¥É¤ò»ÈÍѤ¹¤ëÊýË¡¤Ç¡¤°Ê
²¼¤Î¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤Þ¤¹¡¥
xargs [option…] [command [initial-arguments]]
xargs
¤ÏÄ̾ɸ½àÆþÎϤ«¤é°ú¿ô¤òÆÉ¤ß¹þ¤ß¤Þ¤¹¡¥¤³¤ì¤é¤Î°ú¿ô¤Ï¶õÇò
(¤½¤ì¤Ï¡¤¥À¥Ö¥ë¥¯¥ª¡¼¥È¤ä¥·¥ó¥°¥ë¥¯¥ª¡¼¥È¤Þ¤¿¤Ï¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤ÇÊݸî²Ä
ǽ)¤ä²þ¹Ô¤ÇʬΥ¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥¤½¤ì¤Ïcommand (¥Ç¥Õ¥©¥ë¥È¤Ç
/bin/echo)¤ò¡¤É¸½àÆþÎϤ«¤éÆÉ¤ß¹þ¤Þ¤ì¤¿°ú¿ô¤¬Â³¤¯¤¢¤é¤æ¤ë
initial-arguments¤òÍѤ¤¤Æ¡¤°ì²ó°Ê¾å¼Â¹Ô¤·¤Þ¤¹¡¥É¸½àÆþÎϤζõÇò¹Ô¤Ï
̵»ë¤µ¤ì¤Þ¤¹¡¥
¶õÇò¤ÎʬΥ̾¤ÎÂå¤ï¤ê¤Ë¡¤‘find -print0’¤ä‘find -fprint0’¤ò»ÈÍÑ
¤·¡¤GNU xargs
¡¤GNU tar
¡¤GNU cpio
¡¤¤Þ¤¿¤Ï
perl
¤Ø¡¤‘-0’¤ä‘--null’¥ª¥×¥·¥ç¥ó¤òÍ¿¤¨¤Æ¡¤½ÐÎϤò½èÍý¤·
¤¿Êý¤¬°ÂÁ´¤Ç¤¹¡¥locate
¥³¥Þ¥ó¥É¤Ë¤â¡¤Æ±¤¸¤³¤È¤ò¹Ô¤¦‘-0’¤ä
‘--null’¥ª¥×¥·¥ç¥ó¤¬¤¢¤ê¤Þ¤¹¡¥
°Ê²¼¤Î¤è¤¦¤Ë¡¤°ú¿ô¥ê¥¹¥È¤ò½èÍý¤¹¤ë¤¿¤á¥·¥§¥ë¥³¥Þ¥ó¥É¤ÎÃÖ´¹(¥Ð¥Ã¥¯¥¯¥ª¡¼ ¥È)¤ò»ÈÍѤ¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡¥
grep -l sprintf `find $HOME -name '*.c' -print`
¤·¤«¤·¡¤¤½¤ÎÊýË¡¤Ï¡¤‘.c’¥Õ¥¡¥¤¥ë̾¤ÎŤµ¤¬¡¤¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ
¥à¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¤ÎŤµ¤ÎÀ©¸Â¤òĶ²á¤¹¤ë¾ì¹ç¡¤¥¨¥é¡¼¤¬À¸¤¸¤ë¤Ç¤·¤ç¤¦¡¥
xargs
¤Ï¡¤À©¸Â¤òĶ²á¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤¿¤á¤ËɬÍפʤÀ¤±¥³¥Þ¥ó¥É¤ò¼Â
¹Ô¤¹¤ë¤³¤È¤Ç¡¤¤½¤ÎÌäÂê¤òÈò¤±¤Þ¤¹¡¥
find $HOME -name '*.c' -print | xargs grep -l sprintf
¤·¤«¤·¡¤É¸½àÆþÎϤ¬Ã¼Ëö¤Ç¤¢¤ë¤³¤È¤òɬÍפȤ¹¤ë¥³¥Þ¥ó¥É(Î㤨¤Ð¡¤
less
)¤Î¾ì¹ç¡¤¥·¥§¥ë¥³¥Þ¥ó¥É¤ÎÃÖ´¹¤Î¼êË¡¤ä¡¤xargs
¤Î
‘--arg-file’¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡¥
xargs
¥³¥Þ¥ó¥É¤Ï¡¤¥³¥Þ¥ó¥É¤¬255¤Î¥¹¥Æ¡¼¥¿¥¹¤Ç½ªÎ»¤·¤¿¤ê
(xargs
¤¬¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤ò½ÐÎϤ·Ää»ß¤·¤Æ¤¤¤Þ¤¹)¡¤¥Õ¥¡¥¤¥ë¤Î½ª
¤ï¤ê¤È¤Ê¤ë‘--eof’¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ëʸ»úÎó¤ò´Þ¤ó¤Ç¤¤¤ë¹Ô¤ò
ÆÉ¤ß¹þ¤à¤Þ¤Ç¤Ï¡¤¤¹¤Ù¤Æ¤ÎÆþÎϤò½èÍý¤·¡¤¥³¥Þ¥ó¥É¥é¥¤¥ó¤ò¹½ÃÛ¤·¡¤¤½¤ì¤ò¼Â
¹Ô¤·¤Þ¤¹¡¥
• Unsafe File Name Handling: | ||
• Safe File Name Handling: | ||
• Unusual Characters in File Names: | ||
• Limiting Command Size: | ||
• Interspersing File Names: |