070-8260-2526

ÆòÀÏ ¿ÀÀü 9½Ã ~ ¿ÀÈÄ 6½Ã
´ÜÀ§³óÇù

352-0331-1626-83

¿¹±ÝÁÖ:°­¸¸¼öÅ×Å©³ÝÄÚ¸®¾Æ


ÀÚÁÖ¹¯´Â Áú¹®
Ȩ > °í°´¼¾ÅÍ > ÀÚÁÖ¹¯´Â Áú¹®

Á¶È¸¼ö 9732
Áú¹® Linux, ÆÄÀÏ°Ë»ö(find¸í·É¾î)
Linux, ÆÄÀÏ°Ë»ö(find¸í·É¾î) Linux

2013/01/08 07:25


º¹»ç http://blog.naver.com/dudwo567890/130155977709

Àü¿ëºä¾î º¸±â


Çü½Ä : find [path] [options] [actions]

path : find¸¦ ¼öÇàÇÒ ´ë»ó°æ·Î

options : °Ë»ö¿É¼Ç

actions : °Ë»ö ÈÄ °Ë»öµÈ ÆÄÀϵéÀ» ´ë»óÀ¸·Î ¾î¶² ÀÛ¾÷À» ¼öÇàÇÒ°ÍÀΰ¡¸¦ ÁöÁ¤

 

-. path(´ë»ó°æ·Î)

°æ·ÎÁöÁ¤¹æ¹ý

°Ë»ö´ë»ó¹üÀ§

ÁöÁ¤ ¿¹

.

ÇöÀç µð·ºÅ丮 ÀÌÇÏ

.

/

½Ã½ºÅÛÀüü

/

~ID

»ç¿ëÀÚ°èÁ¤(ID)ÀÇ È¨µð·ºÅ丮ÀÌÇÏ

~user1

/°æ·Î

/°æ·Î µð·ºÅ丮 ÀÌÇÏ

/usr/local

 

-. Options(°Ë»ö¿É¼Ç)

°Ë»ö¿É¼Ç

¿É¼Ç ÀǹÌ

-empty

ºñ¾îÀÖ´Â ÆÄÀÏ(´Ü, ÀϹÝÆÄÀÏ ¶Ç´Â ÀÏ¹Ý µð·ºÅ丮¿¡ ÇÑÇÔ)

-uid [N]

ÁöÁ¤µÈ [N]°ªÀÇUID¸¦ °®´Â ÆÄÀÏ

-gid [N]

ÁöÁ¤µÈ [N]°ªÀÇ GID¸¦ °®´Â ÆÄÀÏ

-group [±×·ì¸í]

ÁöÁ¤ÇÑ ±×·ì¸í¿¡ ¼Ò¼ÓµÈ ÆÄÀÏ

-name

ÁöÁ¤µÈ Çü½ÄÀÇ ÆÐÅÏÀ» °¡Áö´Â ÆÄÀÏ

-newer [ÆÄÀÏ]

ÁöÁ¤ÇÑ "ÆÄÀÏ"º¸´Ù ´õ ÃÖ±Ù¿¡ º¯°æµÈ ÀûÀÌ ÀÖ´Â ÆÄÀÏ

-used [N]

ÆÄÀÏÀÌ º¯°æµÈ ÀÌÈÄ ÃÖ±Ù [N]ÀÏ ÀÌÈÄ¿¡ ¾×¼¼½ºµÈ ÀûÀÌ ÀÖ´Â ÆÄÀÏ

-user [uname]

ÁöÁ¤µÈ [uname]ÀÇ ¼ÒÀ¯·Î µÈ ¸ðµç ÆÄÀÏ.(UID·Î ÁöÁ¤°¡´É)

-amin [N]

ÃÖ±Ù [N]ºÐ ÀÌÀü¿¡ ¾×¼¼½º(access)µÈ ÀûÀÌ ÀÖ´Â ÆÄÀÏ

-anewer [ÆÄÀÏ]

ÁöÁ¤ÇÑ "ÆÄÀÏ"º¸´Ù ´õ ÃÖ±Ù¿¡ ¾×¼¼½º(access)µÈ ÀûÀÌ ÀÖ´Â ÆÄÀÏ

-atime [N]

ÃÖ±Ù [N]*24½Ã°£ Àü¿¡ ¾×¼¼½ºµÈ ÀûÀÌ ÀÖ´Â ÆÄÀÏ

-mmin [N]

ÃÖ±Ù [N]ºÐ ÀÌÀü¿¡ º¯°æµÈ ÀûÀÌ ÀÖ´Â ÆÄÀÏ

-mtime [N]

ÃÖ±Ù [N]*24½Ã°£ ÀÌÀü¿¡ º¯°æµÈ ÀûÀÌ ÀÖ´Â ÆÄÀÏ

-executable

½ÇÇà °¡´ÉÇÑ ÆÄÀÏ

-readable

Àб⠰¡´ÉÇÑ ÆÄÀÏ

-writable

¾²±â °¡´ÉÇÑ ÆÄÀÏ

-fstype [type]

ÁöÁ¤ÇÑ ÆÄÀϽýºÅÛŸÀÓ(type)¿¡ Á¸ÀçÇÏ´Â ÆÄÀÏ

-nogroup

¼Ò¼Ó ±×·ìÀÌ Á¸ÀçÇÏÁö ¾Ê´Â ÆÄÀÏ

-nouser

¼Ò¼Ó »ç¿ëÀÚ(ID)°¡ Á¸ÀçÇÏÁö ¾Ê´Â ÆÄÀÏ

-path [ÆÐÅÏ]

ÆÄÀϸíÀÌ "ÆÐÅÏ"¿¡ ¸ÅĪµÇ´Â ÆÄÀÏ

-perm [¸ðµå]

"¸ðµå"¿¡¼­ ÁöÁ¤µÈ Æ۹̼ǰú ÀÏÄ¡ÇÏ´Â Æ۹̼ÇÀ» °¡Áø ÆÄÀϸ¸ ÇØ´çµÊ,

"-perm g=w"·Î ÁöÁ¤ÇßÀ» °æ¿ì Æ۹̼ÇÀÌ 0020Àΰ͸¸ ÇØ´çµÊ.

-perm -[¸ðµå]

"¸ðµå"¿¡¼­ ÁöÁ¤µÈ Æ۹̼ÇÀ» °¡Áø ¸ðµç ÆÄÀÏ"

"-perm -g=w"·Î ÁöÁ¤ÇßÀ» °æ¿ì ±×·ì¼ÒÀ¯ÀÚ¿¡ ¾²±â±ÇÇÑÀÌÀÖ´Â ¸ðµçÆÄÀÏÀÌ ÇØ´çµÊ.

-regex [ÆÐÅÏ]

"ÆÐÅÏ"¿¡¼­ ÁöÁ¤ÇÑ Á¤±ÔÇ¥Çö½Ä¿¡ ¸ÅĪµÇ´Â ÆÄÀÏ

-size [n][b,c,w,k,M,G]

ÁöÁ¤µÈ [n]´ÜÀ§ÀÇ µð½ºÅ©°ø°£À» »ç¿ëÇÏ´Â ÆÄÀÏ.

b(µðÆúÆ®), c, w, k, M, GµîÀÌ ¿Ã¼ö ÀÖÀ½

-type [ŸÀÔ]

ÁöÁ¤ÇÑ ÆÄÀÏŸÀÔ¿¡ ÇØ´çÇÏ´Â ÆÄÀÏ.

b, c, d, p, f, l, sµîÀÌ ÀÖÀ½

¡Ø À§ÀÇ [n]°ªÀº +nÀº nº¸´Ù Å« °ªÀ» ÀǹÌÇÏ°í, -nÀº  nº¸´Ù ÀÛÀº°ªÀ» ÀǹÌÇϸç, nÀº Á¤È®ÇÏ°Ô n°ª¸¸À» ÀǹÌÇÑ´Ù.

 

-. Actions(°Ë»ö ÈÄ ¼öÇàÀÛ¾÷)

¾×¼Ç¿É¼Ç

¼öÇà³»¿ë

-delete

°Ë»öµÈ ÆÄÀϵéÀ» »èÁ¦

-exec [command] ;

ÁöÁ¤ÇÑ [command]¸¦ ½ÇÇà

-exec [command {} +

°Ë»öµÈ ÆÄÀϵéÀ» Â÷·Ê´ë·Î ¸ÅĪÇϸ鼭 ÁöÁ¤µÈ [command]¸¦ ¼öÇà

-ls

°Ë»öµÈ ÆÄÀϵéÀ» "ls -dils"¸¦ ¼öÇàÇÑ°Í°ú °°Àº ÇüÅ·ΠÃâ·Â

-ok [command] ;

-exec¿Í °°Áö¸¸ ½ÇÇàÇϱâ Àü¿¡ »ç¿ëÀÚ¿¡°Ô Ç¥ÁØÀÔ·ÂÀ¸·Î ¼öÇàÇÒ command¸¦ ÀԷ¹޴´Ù. ¸¸¾à ÀÔ·ÂÀÌ ¾ø´Ù¸é command¸¦ ¼öÇàÇÑ´Ù.

-print

°Ë»öµÈ ÆÄÀϵ鿡 ´ëÇÏ¿© ÀüüÆÄÀÏ °æ·Î·Î ÆÄÀϸ®½ºÆ®¸¦ Ç¥ÁØÃâ·ÂÀ¸·Î Ãâ·ÂÇÑ´Ù.

-printf [format]

°Ë»öµÈ ÆÄÀϵ鿡 ´ëÇÏ¿© ÁöÁ¤µÈ formatÇü½ÄÀ¸·Î Ç¥ÁØÃâ·ÂÀ¸·Î Ãâ·Â

 

-. Operators(¿¬»êÀÚ)

find¸í·É¾î ³»¿¡¼­ »ç¿ë°¡´ÉÇÑ ¿¬»êÀÚµéÀÌ´Ù.

¿¬»êÀÚ

ÀǹÌ

( )

°ýÈ£¾ÈÀÇ ¿¬»êÀÌ ¸ÕÀú ÇàÇØÁü

! [expr]

[expr] ÀÌ °ÅÁþÀ϶§ Âü, ÂüÀ϶§ °ÅÁþÀÌ µÊ

-not [expr]

À§ÀÇ "! [expr]"°ú µ¿ÀÏÇÔ (POSIX ȣȯ¿ë)

[expr1] [expr2]

ANDÀÇ ÀǹÌ, [expr1]ÀÌ °ÅÁþÀ϶§¿¡´Â [expr2]´Â Æò°¡µÇÁö ¾ÊÀ½

[expr1] -a [expr2]

À§ÀÇ "[expr1] [expr2]"¿Í °°À½

[expr1] -and [expr2]

À§ÀÇ "[expr1] [expr2]"¿Í °°À½ (POSIXȣȯ¿ë)

[expr1] -o [expr2]

ORÀÇ ÀǹÌ, [expr1]ÀÌ ÂüÀÏ°æ¿ì [expr2]´Â Æò°¡ µÇÁö ¾ÊÀ½.

[expr1] -or [expr2]

À§ÀÇ "[expr1] -o [expr2]"¿Í °°Àº ÀÇ¹Ì (but, POSIXȣȯ¿ëÀº ¾Æ´Ô)

 

¡Ø "find / -empty -exec ls -l  {} ;"ÀÇ ÀǹÌÆľÇÇϱâ

find /                = ÃÖ»óÀ§µð·ºÅ丮(/)¸¦ ´ë»óÀ¸·Î

-empty              = Å©±â°¡ 0ÀÎ ÆÄÀÏ È¤Àº ºñ¾îÀÖ´Â µð·ºÅ丮¸¦ °Ë»öÇÏ°ÚÀ½

-exec               = °Ë»öµÈ ÆÄÀÏÀ» ´ë»óÀ¸·Î ¸í·É¾î¸¦ ½ÇÇàÇÏ°Ú´Ù.

ls -l                 = ls -l¸í·É¾î ½ÇÇà

{}                    = °Ë»öµÈ ÆÄÀÏÀ» Çϳª¾¿ ´ëÀÔ½ÃÅ°±â À§ÇÑ ¿ëµµ·Î »ç¿ëµÊ

                   = escape¹®ÀÚ

;                      = shell·Î ºÎÅÍ º¸È£Çؼ­ find¸í·ÉÀÌ ³Ñ¾î°¥¼ö¾ø°Ô ÇÔ,

#¸í·É¾î ¸¶Áö¸·¿¡ ³Ö¾îÁÖ´Â ";"´Â ±×³É ¹«Á¶°Ç ³Ö¾îÁÖ¸é µÈ´Ù°í »ý°¢ÇÏ´Â°Ô ÆíÇÒµíÇÔ

 

´Ù½ÃÇѹøÇ®ÀÌ) find / -empty¸¦ Çؼ­ ãÀº ³»¿ëÀÌ ¸¸¾à /data/temp.bakÆÄÀÏÀ̶ó¸é ls -l /data/temp.bak¸¦ ½ÇÇàÇÏ°Ú´Ù´Â ¶æ,

¹°·Ð ÇϳªÀÇ ÆÄÀÏÀÌ ¾Æ´Ñ ´Ù¸¥ ÆÄÀÏÀÌ °Ë»öµÈ´Ù¸é ´Ù¸¥ ¶ÇÇÑ ls -l [°Ë»öµÈÆÄÀÏÀý´ë°æ·Î] ÀÇ Çü½ÄÀ¸·Î °Ë»öÀÌ µÊ,

ls -l·Î µð·ºÅ丮¸¦ °Ë»öÇҽà ºóµð·ºÅ丮¿¡ ´ëÇؼ± total 0¶ó°í ¶ß±â¶§¹®¿¡ ºñ¾îÀÖ´Â µð·ºÅ丮ÀÇ °æ·Î¸¦ ¾Ë¼ö°¡ ¾ø´Ù, lsÀÇ -d¿É¼ÇÀ» ³Ö¾îÁà¾ß¸¸ ºóµð·ºÅ丮ÀÇ °æ·Î¸¦ ¾Ë¼ö ÀÖÀ½.

Áß¿ä1, -exec¿É¼ÇÀ» »ç¿ë½Ã ";"´Â ¹Ýµå½Ã ³Ö¾îÁà¾ß ÇÔ

Áß¿ä2, ¸í·É¾î {}(´ë°ýÈ£) ¿Í (¹é½½·¡½Ã)ÀÇ »çÀÌ´Â ¹Ýµå½Ã ¶ç¾îÁ®¾ßÇÔ

Áß¿ä3, (¹é½½·¡½Ã)¿Í ;(¼¼¹ÌÄÝ·Ð)ÀÇ »çÀÌ´Â Àý¶§ ¶³¾îÁú¼ö ¾øÀ½, ¾î¶°ÇÑ ¿©¹éµµ ¿À¸é ¾ÈµÊ

Áß¿ä4, -exec¸¦ ÅëÇؼ­ alias¸í·É¾î´Â »ç¿ëÀÌ ¾ÈµÇ´Âµí ÇÏ´Ù.

 

>> find¸í·É¾î »ç¿ëÇϱâ <<

-. Å©±â°¡ 0À̰ųª ºóµð·ºÅ丮 °Ë»öÇϱâ

find / -empty -exec ls -ld {} ;

find / -empty -ls

 

-. ÁöÁ¤ÇÑ UID¼ÒÀ¯ÀÇ ¸ðµç ÆÄÀÏÀ» °Ë»öÇϱâ

find / -uid 500 -exec ls -ld {} ;

uid°¡ 500ÀÎ »ç¿ëÀÚ°¡ ¼ÒÀ¯ÇÑ ¸ðµç ÆÄÀÏÀ» °Ë»öÇÏ¿© ls-ldÇü½ÄÀ¸·Î Ãâ·Â

 

-. UID°¡ ¾Æ´Ñ »ç¿ëÀÚ°èÁ¤¸íÀ¸·Î ¼ÒÀ¯ÇÑ ¸ðµç ÆÄÀÏ °Ë»ö

find / -user youngjae -print

youngjae»ç¿ëÀÚ°èÁ¤ÀÌ ¼ÒÀ¯ÇÑ ¸ðµç ÆÄÀÏÀ» °Ë»öÇÏ¿© Ç¥ÁØÃâ·ÂÇüÅ·ΠÃâ·Â

 

-. ƯÁ¤»ç¿ëÀÚÀÇ È¨µð·ºÅ丮¿¡¼­ ƯÁ¤ÆÄÀÏ °Ë»öÇϱâ

find ~youngjae -name '*.dat' -exec ls -l {} ;

youngjae°èÁ¤ÀÇ È¨µð·ºÅ丮³»¿¡¼­ .dat·Î ³¡³ª´Â ¸ðµç ÆÄÀÏÀ» ãÀºÈÄ ls -lÇü½ÄÀ¸·Î Ãâ·Â

 

-. °Ë»öµÈ ÆÄÀÏ ¹Ù·Î »èÁ¦Çϱâ

find ~youngjae -name '*.bak' -exec rm -f {} ;

youngjae°èÁ¤ÀÇ È¨µð·ºÅ丮³»¿¡¼­ .bak·Î ³¡³ª´Â ¸ðµç ÆÄÀÏ »èÁ¦

 

-. »çÀÌÁî°¡ Å« ÆÄÀϵéÀ» °Ë»öÇϱâ

find / -size +100M -exec ls -lh {} ;

ÆÄÀÏ»çÀÌÁî°¡ 100MÀÌ»óÀÎ ÆÄÀÏÀ» °Ë»öÇÏ¿© ls -lhÇü½ÄÀ¸·Î Ãâ·Â

 

-. µÎ°³ÀÇ °Ë»öÁ¶°Ç°ú ÀÏÄ¡ÇÏ´Â ÆÄÀÏ °Ë»öÇϱâ

find /home ! -user youngjae -and -name '*.dat' -exec ls -l {} ;

/homeµð·ºÅ丮¿¡¼­ ÆÄÀϼÒÀ¯ÀÚ°¡ youngjae°¡ ¾Æ´Ñ ÆÄÀÏÁß

.dat·Î ³¡³ª´Â ¸ðµç ÆÄÀÏ °Ë»öÇÏ¿© ls -lÇü½ÄÀ¸·Î Ãâ·ÂÇϱâ

 

-. ÁöÁ¤ÇÑ Æ۹̼ÇÀ» °¡Áö°í ÀÖ´Â ÆÄÀÏ °Ë»öÇϱâ

find / -perm 4755 -exec ls -l {} ;

ÆÄÀϽýºÅÛ Àüü¿¡¼­ SetUIDÆ۹̼ǰú 755¶ó´Â Æ۹̼ÇÀ» °¡Áø ÆÄÀÏÀ» ãÀºÈÄ ls -lÇü½ÄÀ¸·Î Ãâ·Â

 

-. ÆÄÀÏÀÇ º¯°æ½Ã°£À» ±âÁØÀ¸·Î ¿øÇÏ´Â ÆÄÀÏ °Ë»öÇϱâ

find /home -mmin -30 -exec ls -ld {} ;

/homeµð·ºÅ丮¿¡¼­ ÃÖ±Ù 30ºÐ»çÀÌ¿¡ º¯°æµÈ ÆÄÀÏÀ» °Ë»öÇÏ¿© ls -ldÇü½ÄÀ¸·Î Ãâ·Â

Áï, 30ºÐ ÀüºÎÅÍ ÇöÀç±îÁö º¯°æµÈ ÆÄÀÏÀ» ÀǹÌÇÑ´Ù.

¡Ø À§¿¡¼­ ºÐÀ¸·Î Ç¥½ÃµÇ´Â n°ª¿¡ ´ëÇÑ Çؼ®

-mmin n = Á¤È®È÷ nºÐÀÌÀü¿¡ º¯°æµÈ ÆÄÀÏ, nºÐº¸´Ù ´õ Àû°Ôµµ, Å©°Ôµµ ¾Æ´Ï´Ù. µü nºÐ ÀüÀÌ´Ù.

-mmin -n = ÃÖ±Ù nºÐ»çÀÌ¿¡ º¯°æµÈ ÆÄÀÏÀ» ÀǹÌÇÑ´Ù. (nºÐÀü ~ ÇöÀç)

 

-mmin +n = nºÐ ÀÌÀü¿¡ º¯°æµÈ ÆÄÀÏÀ» ÀǹÌÇÑ´Ù. (°¡ÀåóÀ½ ~ nºÐÀü)

 

-. ÆÄÀÏÀÇ ½ÇÇà(access)½Ã°£À» ±âÁØÀ¸·Î ¿øÇÏ´Â ÆÄÀÏ °Ë»öÇϱâ

find /home -atime +2 -exec ls -ld {} ;

/homeµð·ºÅ丮³»¿¡¼­ 2½Ã°£Àü ȤÀº ±×º¸´Ù ´õ ÀÌÀü¿¡ »ç¿ëµÇ¾ú´Â ÆÄÀÏÀ» ãÀºÈÄ ls -ldÇü½ÄÀ¸·Î Ãâ·Â

 

-. ÁöÁ¤ÇÑ ÆÄÀϺ¸´Ù ´õ ÃÖ±Ù¿¡ »ç¿ëµÈ ÀûÀÌ Àְųª º¯°æµÈ ÀûÀÌ ÀÖ´Â ÆÄÀÏ °Ë»ö

find /home -anewer /home/youngjae/linux.dat -exec ls -ld {} ;

/homeµð·ºÅ丮³»¿¡ /home/youngjae/linux.datÆÄÀÏÀÇ ½ÇÇà½Ã°£ ¶Ç´Â º¯°æµÈ½Ã°£º¸´Ù ´õ ÃÖ±Ù¿¡ º¯°æµÇ¾ú°Å³ª ½ÇÇàµÇ¾ú´ø ÆÄÀÏÀ» ã¾Æ ls -ldÇü½ÄÀ¸·Î Ãâ·Â

 

-. ƯÁ¤ ÆÄÀÏŸÀÔÀÇ ÆÄÀϵ鸸 °Ë»öÇϱâ

find /home -type l -exec ls -l {} ;

/homeµð·ºÅ丮³»¿¡¼­ ½Éº¼¸¯¸µÅ©ÆÄÀϸ¸ ã¾Æ ls -lÇü½ÄÀ¸·Î Ãâ·Â

¡Ø ÆÄÀÏŸÀÔ

-type b = ºí·ÏÀåÄ¡ÆÄÀÏ(block special file)

-type c = ¹®ÀÚÀåÄ¡ÆÄÀÏ(character special file)

-type d = µð·ºÅ丮(directory)

-type p = FIFOÆÄÀÏ(first in first out)

-type f = ÀϹÝÆÄÀÏ(refular file)

-type l = ½Éº¼¸¯¸µÅ©ÆÄÀÏ(symbolic link file)

-type s = ¼ÒÄÏÆÄÀÏ(socket file)

 

-. root¼ÒÀ¯ÀÇ SetUID, SetGID, StickyBitÆÄÀÏ °Ë»öÇϱâ

find / -user root -perm 4755 -exec ls -l {} ;

ÆÄÀϽýºÅÛ Àüü¿¡¼­ root¼ÒÀ¯ÀÇ SetUIDÆÄÀÏÀ» ã¾Æ ls -lÇü½ÄÀ¸·Î Ãâ·Â

root¼ÒÀ¯ÀÇ SetUIDÆÄÀÏÀº º¸¾È»ó »ó´çÈ÷ Áß¿äÇÑ ÆÄÀÏÀÌ´Ù.

 

¡Ø ÀüüÀûÀ¸·Î find¸í·É¾î¸¦ °øºÎÇϸ鼭 ÀÌÇØ°¡ ¾ÈµÇ´Â ºÎºÐÀÌ »ó´ç¼ö ÀÖÀ½,

-or ¿¬»êÀÚ¸¦ ÀÌ¿ëÇÏ¿© Á¶°ÇÀ» 2°³¸¦ »ç¿ëÇÑ »óÅ¿¡¼­ ¾×¼Ç¿É¼ÇÀ» ÁÖ°Ô µÇ¸é

-or ¿¬»êÀÚ µÚÂÊ¿¡ ÁÖ¾ú´ø ¿É¼Ç¿¡ ´ëÇؼ­¸¸ ¾×¼Ç¿É¼ÇÀÌ ¼öÇàµÇ¸ç -or¿¬»êÀÚ ¾ÕÂÊÀº ¹«½Ã°¡ µÆ´Ù..

Áö½ÄÀÎÀ» ÅëÇÏ¿© ¾Ë¾Æ³½ ´äº¯

find /home ( -type l -o -user user2 ) -print

/homeµð·ºÅ丮³»¿¡ ½Éº¼¸¯¸µÅ©ÆÄÀÏ°ú user2¼ÒÀ¯ÀÎ ÆÄÀÏÀ» Ãâ·Â

°ýÈ£°¡ ´äÀεí...