Previous: Delete Files, Up: Actions [Contents][Index]
find
¤ÎÁȤ߹þ¤ß¥Æ¥¹¥È¤¬Ä´ºº¤·¤Ê¤¤¡¤¥Õ¥¡¥¤¥ë¤Î°À¤ÎÄ´ºº¤ò¤¹¤ë¤³¤È
¤¬²Äǽ¤Ç¤¹¡¥¤³¤¦¤¹¤ë¤¿¤á¤Ë¡¤find
¤¬½ÐÎϤ·¤¿¥Õ¥¡¥¤¥ë¥ê¥¹¥È¤Ø¤Î¥Õ¥£
¥ë¥¿¡¼¤È¤Ê¤ë¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¤¿¤á¡¤xargs
¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡¥
xargs
¤Ë¤è¤Ã¤Æ¼Â¹Ô¤µ¤ì¤ë¥×¥í¥°¥é¥à¤¬¹Ô¤Ê¤¦»Å»ö¤ò¸º¤é¤¹¤¿¤á¡¤¥ê¥¹
¥È¤¬¾¯¤Ê¤¯¤Ê¤ë¤è¤¦¤Ë¡¤find
¤ÎÁȤ߹þ¤ß¥Æ¥¹¥È¤ò¤Ç¤¤ë¤À¤±»ÈÍѤ·¤Æ²¼
¤µ¤¤¡¥find
¤ÎÁȤ߹þ¤ß¥Æ¥¹¥È¤Ï¡¤Â¾¤Î¥×¥í¥°¥é¥à¤¬¼Â¹Ô¤¹¤ë¥Æ¥¹¥È¤è¤ê
®¤¯¼Â¹Ô¤µ¤ì¤ë¤Ç¤·¤ç¤¦¡¥
¸úΨ¤ÎÌäÂê¤Ç¡¤³°Éô¥×¥í¥°¥é¥à¤Î¼Â¹Ô²ó¿ô¤òÀ©¸Â¤¹¤ë¤³¤È¤¬Ìò¤ËΩ¤Ä¤³¤È¤â¤è
¤¯¤¢¤ê¤Þ¤¹¡¥¤³¤Î¤¿¤á¡¤xargs
¤ò»ÈÍѤ·¤Æ“³ÈÄ¥”¥Æ¥¹¥È¤ò¼ÂÁõ¤¹¤ë¤Î
¤ÏÎɤ¤¹Í¤¨¤Ç¤¹¡¥
Î㤨¤Ð°Ê²¼¤Ë¡¤/usr/local¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼Æâ¤Îstrip¤µ¤ì¤Æ¤¤¤Ê¤¤
¥Ð¥¤¥Ê¥ê¤Î¡¤¤¹¤Ù¤Æ¤Î̾Á°¤ò½ÐÎϤ¹¤ëÊýË¡¤¬¤¢¤ê¤Þ¤¹¡¥ÁȤ߹þ¤ß¥Æ¥¹¥È¤Ï¡¤ÄÌ
¾ï¤Î¥Õ¥¡¥¤¥ë¤Ç¤Ê¤¤¤â¤Î¤ä¡¤¼Â¹Ô²Äǽ¤Ç¤Ê¤¤¥Õ¥¡¥¤¥ë¤Ç¡¤file
¤ò¼Â¹Ô¤¹
¤ë¤³¤È¤òÈò¤±¤Þ¤¹¡¥
find /usr/local -type f -perm /a=x | xargs file | grep 'not stripped' | cut -d: -f1
cut
¥×¥í¥°¥é¥à¤Ï¡¤file
¤Î½ÐÎϤ«¤é¥Õ¥¡¥¤¥ë̾°Ê¹ß¤Î¤â¤Î¤¹¤Ù¤Æ
¤òºï½ü¤·¤Þ¤¹¡¥
¤·¤«¤·¡¤xargs
¤ò»ÈÍѤ¹¤ë¤³¤È¤Ï¡¤¥»¥¥å¥ê¥Æ¥£¤Î½ÅÍפÊÌäÂê¤ËÁø¶ø¤¹
¤ë¤³¤È¤â¤¢¤ê¤Þ¤¹(see Security Considerations)¡¥¤³¤ì¤é¤Ï
‘-execdir’¤ò»ÈÍѤ¹¤ë¤³¤È¤Ç²óÈò¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡¥‘-execdir’
¥¢¥¯¥·¥ç¥ó¤Ï¡¤Â¾¤Î¥Æ¥¹¥È½¸¤Î¹ç´Ö¤äfind
¤Î¥¢¥¯¥·¥ç¥ó¤ËÆÈ¼«¤Î¥Æ¥¹¥È
¤ò½ñ¤¯¤È¤¤Ë¤âÌò¤ËΩ¤Á¤Þ¤¹(Î㤨¤Ð¡¤‘-prune’¤ò»ÈÍѤ·¤¿¤¤¤«¤â¤·¤ì¤Þ
¤»¤ó)¡¥
find
¤Î¼°¤ÎÃæ´Ö¤Î¤É¤³¤«¤ÇÆÃ¼ì¤Ê¥Æ¥¹¥È¤òÇÛÃÖ¤·¤¿¤¤¾ì¹ç¡¤¥Æ¥¹¥È¤ò¼Â
»Ü¤¹¤ë¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¤¿¤á¤Ë¡¤‘-execdir’ (¤Þ¤¿¤Ï¡¤Í¾¤ê¥»¥¥å¥ê
¥Æ¥£¤Î¹â¤¯¤Ê¤¤‘-exec’)¤ò»ÈÍѤ¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡¥‘-execdir’¤Ï¡¤
¼Â¹Ô¤µ¤ì¤¿¥×¥í¥°¥é¥à¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤òɾ²Á¤¹¤ë¤Î¤Ç¡¤ÆÃ¼ì¤Ê°À¤ò¸¡ºº¤¹
¤ë¥×¥í¥°¥é¥à(¤½¤ì¤Ï¡¤¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤â²Äǽ¤Ç¤¹)¤ò½ñ¤¯¤³¤È¤È¡¤¿¿(¥¼¥í)
¤äµ¶(¥¼¥í°Ê³°)¤Î¥¹¥Æ¡¼¥¿¥¹¤Ç½ªÎ»¤µ¤»¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡¥¤½¤Î¤è¤¦¤ÊÆÃ¼ì¤Ê
¥Æ¥¹¥È¤Ï¡¤ÁȤ߹þ¤ß¥Æ¥¹¥È¤¬µ¶¤Èɾ²Á¤µ¤ì¤ë¾ì¹ç¤Ï¹Ô¤Ê¤ï¤Ê¤¤¿·¤·¤¤¥×¥í¥»¥¹
¤ò³«»Ï¤¹¤ë¤Î¤Ç¡¤¤½¤ì¤òÁȤ߹þ¤ß¥Æ¥¹¥È¤Î¸å¤ËÇÛÃÖ¤¹¤ë¤³¤È¤ÏÎɤ¤¹Í¤¨
¤Ç¤¹¡¥
°Ê²¼¤Ï¡¤°ú¿ô¤¬strip¤µ¤ì¤Æ¤¤¤ë¥Ð¥¤¥Ê¥ê¥Õ¥¡¥¤¥ë¤«¤É¤¦¤«¤òÄ´ºº¤¹¤ë¡¤
unstripped
¤È¤¤¤¦Ì¾Á°¤Î¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤Ç¤¹¡¥
#! /bin/sh file "$1" | grep -q "not stripped"
¤³¤Î¥¹¥¯¥ê¥×¥È¤Ï¡¤¥Ñ¥¤¥×¥é¥¤¥ó¤ÎºÇ¸å¤Î¥³¥Þ¥ó¥É¤Î¥¹¥Æ¡¼¥¿¥¹¤Ç¥·¥§¥ë¤¬½ª
λ¤¹¤ë¤³¤È¤Ë°Í¸¤·¡¤¤³¤Î¾ì¹çgrep
¤Ë¤Ê¤ê¤Þ¤¹¡¥grep
¤Ï¡¤¥Þ¥Ã
¥Á¤¬¸«¤Ä¤«¤ë¾ì¹ç¤Ï¿¿¤Ç½ªÎ»¤·¡¤¤½¤ì°Ê³°¤Ç¤Ïµ¶¤Ç½ªÎ»¤·¤Þ¤¹¡¥°Ê²¼¤Ë¤Ë(¥µ¡¼
¥Á¥Ñ¥¹¤Ë¤¢¤ë¤È²¾Äꤷ¤Æ¤¤¤ë)¥¹¥¯¥ê¥×¥È¤òÍøÍѤ·¤Æ¤¤¤ëÎ㤬¤¢¤ê¤Þ¤¹¡¥¤½¤ì¤Ï¡¤
¥Õ¥¡¥¤¥ësbinsÆâ¤Îstrip¤µ¤ì¤Æ¤¤¤ë¼Â¹Ô·Á¼°¤È¡¤ubinsÆâ¤Î
strip¤µ¤ì¤Æ¤¤¤Ê¤¤¼Â¹Ô·Á¼°¤ò¥ê¥¹¥È¥¢¥Ã¥×¤·¤Þ¤¹¡¥
find /usr/local -type f -perm /a=x \ \( -execdir unstripped '{}' \; -fprint ubins -o -fprint sbins \)