Çü½Ä : 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¼ÒÀ¯ÀÎ ÆÄÀÏÀ» Ãâ·Â
°ýÈ£°¡ ´äÀεí...