Linux find ¸í·É¾î ¿ÏÀü Á¤º¹ °¡À̵å
Linux find ¸í·É¾î´Â ¸ðµç Linux ¸í·É¾î °¡¿îµ¥ °¡Àå À¯¿ëÇϸ鼵µ È¥¶õ½º·¯¿î ¸í·É¾î °¡¿îµ¥ ÇϳªÀÔ´Ï´Ù. ´Ù¸¥ Linux ¸í·É¾îÀÇ Ç¥ÁØ ±¸¹®°ú ´Ù¸¥ ±¸¹®À» °¡Áö°í ÀÖ´Ù´Â Á¡¿¡¼ ¾î·Æ½À´Ï´Ù. ÇÏÁö¸¸, ÆÄÀϸí, ÆÄÀÏ À¯Çü, »ç¿ëÀÚ, ´õ ³ª¾Æ°¡ ŸÀÓ ½ºÅÆÇÁ º°·Î ÆÄÀÏÀ» ãÀ» ¼ö ÀÖ´Ù´Â Á¡¿¡¼ °·ÂÇÑ ¸í·É¾îÀ̱⵵ ÇÕ´Ï´Ù. find ¸í·É¾î¸¦ »ç¿ëÇϸé ÀÌ·¯ÇÑ ¼Ó¼ºÀ» ÀÚÀ¯·Ó°Ô Á¶ÇÕÇØ ÆÄÀÏÀÇ À§Ä¡¸¦ ãÀ» ¼ö ÀÖÀ» »Ó¸¸ ¾Æ´Ï¶ó, ãÀº ÆÄÀÏ¿¡ ´ëÇØ ¿¬»êÀ» ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù.
º» ±ÛÀÇ ¸ñÀûÀº find ¸í·É¾î¿Í ±× ÀáÀçÀû ÀÌÁ¡À» °³·«ÀûÀ¸·Î ¼³¸íÇÔÀ¸·Î½á find ¸í·É¾î¸¦ ¼Õ½±°Ô ÇнÀ ¹× »ç¿ëÇÒ ¼ö ÀÖµµ·Ï µ½´Â °ÍÀÔ´Ï´Ù. µ¿½Ã¿¡, find ¸í·É¾îÀÇ Æ¯¼º Áß °¡Àå °·ÂÇϸ鼵µ ÇÑÆíÀ¸·Î´Â È¥¶õ½º·¯¿î Ãø¸é¿¡ ´ëÇÑ °³¿ä ¹× ÂüÁ¶¸¦ Á¦°øÇÒ °ÍÀÔ´Ï´Ù.
[ÁÖ: ¿©±â¿¡¼ »ç¿ëµÈ find ¸í·É¾î´Â GNU ¹öÀüÀ̱⠶§¹®¿¡ ÀϺΠ¼¼ºÎ ³»¿ëÀº ´Ù¸¥ ¹öÀüÀÇ find ¸í·É¾î¿Í ´Ù¸¦ ¼ö ÀÖ½À´Ï´Ù.]
±âº» Çü½Ä
¸ÕÀú, find ¸í·É¾îÀÇ ±âº» ±¸Á¶ºÎÅÍ »ìÆìº¸°Ú½À´Ï´Ù:
find start_directory test options criteria_to_matchaction_to_perform_on_results¾Æ·¡ ¸í·É¾î¿¡¼ find´Â À̸§¿¡ ¡°java¡± È®ÀåÀÚ¸¦ °¡Áö°í ÀÖ´Â ¸ðµç ÆÄÀÏÀ» ´ë»óÀ¸·Î ¡°.¡±°¡ Ç¥½ÃµÈ ÇöÀç µð·ºÅ丮¸¦ ã±â ½ÃÀÛÇÒ °ÍÀÔ´Ï´Ù:
find . -name "*.java"
¾Æ·¡¿¡´Â °Ë»ö °á°ú¿¡ ´ëÇÑ °£´ÜÇÑ ¸ñ·ÏÀÌ ³ª¿µÇ¾î ÀÖ½À´Ï´Ù:
find . -name "*.java"./REGEXPvalidate/src/oracle/otnsamples/plsql/ConnectionManager.java./REGEXPvalidate/src/oracle/otnsamples/plsql/DBManager.java..
[ÁÖ: º» ±Û¿¡¼ Àß¶ó ºÙÀ̱⸦ ÇØ find ¸í·É¾î¸¦ ½ÇÇàÇÏ´Â °æ¿ì¿¡´Â ÀÚü Űº¸µå¸¦ »ç¿ëÇØ Å«µû¿ÈÇ¥(¡°¡±)¸¦ ¹Ù²ã¾ß ¿Ã¹Ù¸¥ °á°ú¸¦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù.]
¾Æ·¡ ¸í·É¾î ¿ª½Ã µ¿ÀÏÇÑ ¿¬»êÀ» ¼öÇàÇÒ °ÍÀÔ´Ï´Ù. ¾î¶² °æ¿ìµç, find ¸í·É¾î¿¡ Àü´ÞµÇµµ·Ï escape ¹®À» ÅëÇØ ¿ÍÀϵåÄ«µå ¹®ÀÚ¸¦ ÀÏ¹Ý ¹®ÀڷΠó¸®ÇØ¾ß ÇÏ¸ç ½©¿¡ ÀÇÇØ ÇØ¼®µÇÁö ¾Ê¾Æ¾ß ÇÕ´Ï´Ù. µû¶ó¼, °Ë»ö ¹®ÀÚ¿¿¡ ūŸ¿ÈÇ¥¸¦ ºÙÀ̰ųª ±× ¾Õ¿¡ ¿ª½½·¡½Ã(\)¸¦ ºÙÀ̽ʽÿÀ:
find . -name \*.java
find¿¡ ´ëÇÑ Àμö´Â ¿É¼ÇÀ̱â´Â ÇÏÁö¸¸, °Ë»ö ½ÃÀÛ À§Ä¡¸¦ ÁöÁ¤ÇÏÁö ¾ÊÀº °æ¿ì¿¡´Â ÇöÀç µð·ºÅ丮¿¡¼ ±âº»ÀûÀ¸·Î °Ë»öÀÌ ½ÃÀ۵˴ϴÙ. ¿É¼Ç »çÇ×À̱â´Â ÇÏÁö¸¸ Å×½ºÆ® Á¶°ÇÀ» ÁöÁ¤ÇÏÁö ¾ÊÀº °æ¿ì¿¡´Â ºÒ¿ÏÀüÇϰųª ¼±º°µÇÁö ¾ÊÀº °á°ú°ªÀÌ Ãâ·ÂµË´Ï´Ù.
¾Æ·¡ 3°³ÀÇ find ¸í·É¾î¸¦ ½ÇÇàÇÏ¸é ¶È°°ÀÌ ÇöÀç µð·ºÅ丮¿Í ¼û°ÜÁø ÆÄÀÏÀ» Æ÷ÇÔÇÏ´Â ¸ðµç ¼ºêµð·ºÅ丮ÀÇ ¸ðµç ÆÄÀÏ ¸ñ·ÏÀÌ °Ë»öµË´Ï´Ù:
find find .find . -print
ÀÌ´Â –la ¿É¼ÇÀ» °¡Áø ls ¸í·É¾î¸¦ ½ÇÇàÇÏ´Â °Í°ú ºñ½ÁÇÕ´Ï´Ù. ¹é¾÷À» À§ÇØ À§ ¸í·É¾îÀÇ Ãâ·Â¹°¿¡ Àüü °æ·Î À̸§ÀÌ Æ÷ÇԵDZ⸦ ¿øÇÏ´Â °æ¿ì¶ó¸é ½ÃÀÛ µð·ºÅ丮¿¡ ´ëÇÑ Àüü °æ·Î¸¦ ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù:
find /home/bluher -name \*.java/home/bluher/plsql/REGEXPvalidate/src/oracle/otnsamples/plsql/ConnectionManager.java/home/bluher/plsql/REGEXPvalidate/src/oracle/otnsamples/plsql/DBManager.java/...
¶ÇÇÑ, °Ë»ö ¹®ÀÚ¿¿¡ 1°³ ÀÌ»óÀÇ ½ÃÀÛ µð·ºÅ丮¸¦ ÁöÁ¤ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÀûÁ¤ ±ÇÇÑÀ» °¡Áø »ç¿ëÀڷμ ½ÇÇàµÇ´Â °æ¿ì, ¾Æ·¡ ¸í·É¾î´Â ¸ðµç jar ÆÄÀÏÀ» ã±â À§ÇØ /usr, /home ¹× /tmp µð·ºÅ丮 ¼ø¼·Î ³»·Á°¥ °ÍÀÔ´Ï´Ù:
find /usr /home /tmp -name "*.jar"
ÀûÁ¤ ±ÇÇÑÀÌ ¾ø´Â »ç¿ëÀÚ¶ó¸é ¸¹Àº ½Ã½ºÅÛ µð·ºÅ丮¸¦ °Ë»öÇϱ⠽ÃÀÛÇÒ ¶§ ´ÙÀ½°ú °°Àº ¿À·ù ¸Þ½ÃÁö°¡ ³ª¿Ã ¼ö ÀÖ½À´Ï´Ù:
find: /tmp/orbit-root: Permission denied
´ÙÀ½°ú °°ÀÌ °Ë»ö ¹®ÀÚ¿À» Ãß°¡ÇÔÀ¸·Î½á ºÒ¸íÈ®ÇÑ °á°ú°¡ ³ª¿À´Â °ÍÀ» ÇÇÇÒ ¼ö ÀÖ½À´Ï´Ù:
find /usr /home /tmp -name "*.jar" 2>/dev/null
ÀÌ·¸°Ô ÇÏ¸é ¸ðµç ¿À·ù ¸Þ½ÃÁö°¡ ³Î(null) ÆÄÀÏ·Î Àü¼ÛµÇ±â ¶§¹®¿¡ º¸´Ù Á¤Á¦µÈ Ãâ·Â¹°ÀÌ Á¦°øµË´Ï´Ù.
±âº»ÀûÀ¸·Î find ¸í·É¾î´Â ´ë/¼Ò¹®ÀÚ¸¦ ±¸º°ÇÕ´Ï´Ù. ´ë/¼Ò¹®ÀÚ°¡ ±¸º°µÇ´Â find¿¡¼´Â -name Å×½ºÆ®¸¦ ´ë½ÅÇØ -iname Å×½ºÆ®¸¦ »ç¿ëÇϽʽÿÀ.
find downloads -iname "*.gif"downloads/.xvpics/Calendar05_enlarged.gifdownloads/lcmgcfexsmall.GIF¶ÇÇÑ, ÆÄÀÏ¸í ¿Ü¿¡µµ À¯Çü¿¡ µû¶ó ÆÄÀÏÀ» °Ë»öÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ¾Æ·¡ ¸í·É¾î¸¦ ÅëÇØ µð·ºÅ丮ÀÇ ¸ðµç ¼ºêµð·ºÅ丮¸¦ ãÀ» ¼ö ÀÖ½À´Ï´Ù:
find . -type d
¾Æ·¡ ¸í·É¾î¸¦ »ç¿ëÇϸé /usr µð·ºÅ丮ÀÇ ¸ðµç ½Éº¼¸¯ ¸µÅ©(symbolic link)¸¦ ãÀ» ¼ö ÀÖ½À´Ï´Ù:
find /usr -type l
À§ ¸í·É¾î¸¦ ½ÇÇàÇϸé 3,000°³ ÀÌ»óÀÇ ¸µÅ© ¸ñ·ÏÀÌ ³ªÅ¸³¯ °ÍÀÔ´Ï´Ù. ½´ÆÛÀ¯Àú(root) ±ÇÇÑÀ» ÅëÇØ ¾Æ·¡ ¸í·É¾î °¡¿îµ¥ Çϳª¸¦ ½ÇÇàÇϸé /usr µð·ºÅ丮ÀÇ ¸µÅ© ¸ñ·Ï°ú À̰ÍÀÌ °¡¸®Å°´Â ÆÄÀÏÀÌ ³ªÅ¸³³´Ï´Ù:
# find /usr/bin -type l -name "z*" -exec ls -l {} \;lrwxrwxrwx 1 root root 8 Dec 12 23:17 /usr/bin/zsh -> /bin/zshlrwxrwxrwx 1 root root 5 Dec 12 23:17 /usr/bin/zless -> zmorelrwxrwxrwx 1 root root 9 Dec 12 23:17 /usr/bin/zcat -> /bin/zcat
find /usr/bin -type l -name "z*" -ls
ÇÏÁö¸¸, º¸´Ù ªÀº µÎ ¹øÂ° ¸í·É¾î¸¦ ½ÇÇàÇÏ¸é µð·ºÅ丮¿Í inode Á¤º¸¸¦ °¡Áø ±ä ÆÄÀÏ ¸ñ·ÏÀÌ ³ª¿Ã °ÍÀÔ´Ï´Ù. -exec ¹× –ls ½ÇÇà¿¡ ´ëÇØ¼´Â ÈĹݺο¡¼ ´Ù·ê °ÍÀÔ´Ï´Ù
find°¡ ãÀ» ¼ö ÀÖ´Â ´Ù¸¥ ÆÄÀÏ À¯ÇüÀ¸·Î´Â ´ÙÀ½°ú °°Àº °ÍµéÀÌ ÀÖ½À´Ï´Ù
• b—block (buffered) special
• c—character (unbuffered) special
• p—named pipe (FIFO)
• s—socket
find ¸í·É¾îÀÇ ½ÃÀÛÁ¡À¸·Î ·çÆ®¸¦ »ç¿ëÇÏ¸é ½Ã½ºÅÛ ¼Óµµ°¡ Å©°Ô ´À·ÁÁú ¼ö ÀÖ½À´Ï´Ù. ¹Ýµå½Ã ¸í·É¾î¸¦ ½ÇÇàÇØ¾ß ÇÏ´Â °æ¿ì¿¡´Â »ç¿ë·®ÀÌ ÀûÀº ½Ã°£´ë³ª ¾ß°£¿¡ ½ÇÇàÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù. ¾Æ·¡ ±¸¹®À» »ç¿ëÇØ Ãâ·Â¹°À» ÆÄÀÏ·Î º¸³¾ ¼ö ÀÖ½À´Ï´Ù.:
find / -print > masterfilelist.out
¿øÄ¡ ¾Ê´Â Ãâ·Â¹°À» ´ë·® »ý»êÇÏ´Â find ¸í·É¾î¸¦ ½Ç¼ö·Î ÀÔ·ÂÇÑ °æ¿ì¿¡´Â CTRL-C¸¦ ´©¸£±â¸¸ ÇÏ¸é °¡Àå ÃÖ±Ù¿¡ ½ÇÇàµÈ ¸í·É¾î°¡ Áߴܵ˴ϴÙ.
¿©·¯ ÆÄÀÏ ½Ã½ºÅÛÀ» °®Ãá ¿£ÅÍÇÁ¶óÀÌÁî ³×Æ®¿öÅ©¿¡¼´Â ƯÈ÷ find ¸í·É¾î°¡ °Ë»öÇÑ ÆÄÀÏÀ» Á¦ÇÑÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù. ÇÊ¿äÇÑ ¼ö ¸¸Å ¿É¼Ç ¹× Å×½ºÆ®¸¦ »ç¿ëÇÔÀ¸·Î½á ½Ã½ºÅÛ »óÀÇ ·Îµå¸¦ ÁÙÀÏ ¼ö ÀÖ½À´Ï´Ù. À̸¦ À§ÇØ °¡Àå À¯¿ëÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ´Â ¿É¼ÇÀº –xdev¿Í -mountÀÔ´Ï´Ù. ÀÌµé ¿É¼ÇÀº find ¸í·É¾î°¡ MS-DOS, CD-ROM ¶Ç´Â AFS¿Í °°Àº ´Ù¸¥ ÆÄÀÏ ½Ã½ºÅÛ »óÀÇ µð·ºÅ丮·Î ³»·Á°¡Áö ¾Êµµ·Ï ÇÔÀ¸·Î½á °Ë»ö ¹üÀ§¸¦ Á¼ÇôÁÝ´Ï´Ù. µû¶ó¼, ½ÃÀÛ µð·ºÅ丮¿Í µ¿ÀÏÇÑ À¯ÇüÀÇ ÆÄÀÏ ½Ã½ºÅÛÀ¸·Î °Ë»öÀ» Á¦ÇÑÇÒ ¼ö ÀÖ½À´Ï´Ù.
µà¾ó ºÎÆÃ ½Ã½ºÅÛ »ç¿ëÀÚ´Â mount ¸í·É¾î°¡ ½ÇÇàµÇ´Â °æ¿ì¿¡ ÀÌ·¯ÇÑ ¿É¼ÇÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. Windows ÆÄƼ¼ÇÀÌ °ü·ÃµÇ¾î ÀÖ´Ù°í °¡Á¤Çϸé, ¾Æ·¡¿Í °°Àº ¸í·É¾î¸¦ ÅëÇØ ¸¶¿îÆÃ ÇÒ ¼ö ÀÖ½À´Ï´Ù.:
mount -t vfat /dev/sda1 /mnt/msdos
¿©·¯ºÐÀÌ »ç¿ëÇÏ´Â ½ÇÁ¦ ¸í·É¾î´Â ½Ã½ºÅÛ ¼³Á¤ ¹æ¹ý¿¡ µû¶ó ´Þ¶óÁý´Ï´Ù. df¸¦ ½ÇÇàÇϰųª ¾Æ·¡ ¸í·É¾î¸¦ ¼öÇàÇÔÀ¸·Î½á ÆÄƼ¼Ç ¸¶¿îÆÃ ¿©ºÎ¸¦ È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù:
find /mnt/msdos -name "*.txt" 2> /dev/null
MS Windows ÆÄƼ¼Ç¿¡¼´Â ÆÄÀÏ ¸ñ·ÏÀÌ ±æ ¼ö ¹Û¿¡ ¾ø½À´Ï´Ù. ÀÌÁ¦ºÎÅÍ´Â -mount ¶Ç´Â -xdev ¿É¼ÇÀ» ÅëÇØ ¾Æ·¡ ¸í·É¾î¸¦ ½ÇÇàÇϽʽÿÀ:
find / -name "*.txt" -mount 2> /dev/null
¶Ç´Â
find / -name "*.txt" -xdev 2> /dev/null
¾Æ·¡ ¿¹¿¡¼¿Í °°ÀÌ -fstype Å×½ºÆ®¸¦ »ç¿ëÇØ find ¸í·É¾î¿¡ ã°íÀÚ ÇÏ´Â ÆÄÀÏ ½Ã½ºÅÛÀ» ¸íÈ®ÇÏ°Ô ¾Ë·ÁÁÙ ¼öµµ ÀÖ½À´Ï´Ù:
find / -name "*.txt" -fstype vfat 2> /dev/null
½Ã°£ ã±â
find ¸í·É¾î´Â ½Ã½ºÅÛÀÇ Å¸ÀÓ ½ºÅÆÇÁ¸¦ Åä´ë·Î ÆÄÀÏ °Ë»ö¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Â ¿©·¯ °³ÀÇ ¿É¼ÇÀ» °¡Áö°í ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ Å¸ÀÓ ½ºÅÆÇÁ·Î´Â ´ÙÀ½ÀÌ Æ÷ÇԵ˴ϴÙ
• mtime—ÆÄÀÏ ³»¿ëÀÌ ¸¶Áö¸·À¸·Î ¼öÁ¤µÈ ½Ã°£
• atime—ÆÄÀÏÀ» Àб⠶Ǵ ¾×¼¼½ºÇÑ ½Ã°£
• ctime—ÆÄÀÏ »óŰ¡ º¯°æµÈ ½Ã°£
mtime ¹× atimeÀÇ Àǹ̴ ±× ÀÚü·Î ½±°Ô ¾Ë ¼ö ÀÖÁö¸¸, ctime´Â Á» ´õ ¼³¸íÀÌ ÇÊ¿äÇÕ´Ï´Ù. inode´Â °¢ ÆÄÀÏ¿¡ ¸ÞŸ µ¥ÀÌÅ͸¦ °¡Áö°í Àֱ⠶§¹®¿¡ ÆÄÀÏ¿¡ ¿¬°áµÈ ¸ÞŸ µ¥ÀÌÅͰ¡ º¯°æµÇ¸é inode µ¥ÀÌÅ͵µ º¯°æµË´Ï´Ù. ÆÄÀÏ¿¡ ´ëÇÑ ½Éº¼¸¯ ¸µÅ© »ý¼º, ÆÄÀÏ¿¡ ´ëÇÑ ±ÇÇÑ º¯°æ, ÆÄÀÏ À̵¿ µî°ú °°Àº ´Ù¾çÇÑ ÀÛ¾÷À¸·Î ÀÎÇØ ÀÌ·¯ÇÑ ¸ÞŸ µ¥ÀÌÅÍ º¯°æÀÌ ¾ß±âµÉ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ °æ¿ì, ÆÄÀÏ ³»¿ë¿¡ ´ëÇÑ Àб⳪ ¼öÁ¤Àº ¼öÇàµÇÁö ¾Ê±â ¶§¹®¿¡ themtime ¹× atimeÀº º¯ÇÏÁö ¾ÊÁö¸¸ ctimeÀº º¯ÇÕ´Ï´Ù.
ÀÌ·¯ÇÑ ½Ã°£ ¿É¼ÇÀº °¢±â -n, n ¶Ç´Â +n·Î ÁöÁ¤µÈ n °ªÀ» ÇÔ²² »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.
• -nÀº n ÀÌÇϸ¦ ¹Ýȯ
• +nÀº n ÀÌ»óÀ» ¹Ýȯ
• nÀº Á¤È®È÷ n¿¡ ÇØ´çµÇ´Â °ªÀ» ¹Ýȯ
º¸´Ù ¸íÈ®ÇÑ ¼³¸íÀ» À§ÇØ ¸î °¡Áö ¿¹¸¦ »ìÆì º¸°Ú½À´Ï´Ù. ¾Æ·¡ ¸í·É¾î´Â ÃÖ±Ù 1½Ã°£ µ¿¾È ¼öÁ¤µÈ ¸ðµç ÆÄÀÏÀ» ã¾ÆÁÝ´Ï´Ù:
find . -mtime -1./plsql/FORALLSample./plsql/RegExpDNASample/plsql/RegExpSample
-1 ´ë½Å 1À» °¡Áø µ¿ÀÏ ¸í·É¾î¸¦ ½ÇÇàÇϸé Á¤È®ÇÏ°Ô 1½Ã°£ Àü¿¡ ¼öÁ¤µÈ ¸ðµç ÆÄÀÏÀ» ãÀ» ¼ö ÀÖ½À´Ï´Ù:
find . -mtime 1
À§ ¸í·É¾î´Â Á¤È®ÇÏ°Ô ÀÏÄ¡ÇÏ´Â °ªÀ» ¿äûÇϱ⠶§¹®¿¡ ¸ðµç °á°ú°ªÀÌ ³ª¿ÀÁö´Â ¾Ê½À´Ï´Ù. ¾Æ·¡ ¸í·É¾î´Â 1½Ã°£ ÀÌÀü¿¡ ¼öÁ¤µÈ ÆÄÀÏÀ» ã¾ÆÁÝ´Ï´Ù:
find . -mtime +1±âº»ÀûÀ¸·Î -mtime, -atime ¹× –ctime´Â ÃÖ±Ù 24 ½Ã°£¿¡ ´ëÇÑ Å¸ÀÓ ½ºÅÆÇÁÀÔ´Ï´Ù. ÇÏÁö¸¸, µÚ¿¡ daystart ¿É¼ÇÀ» ºÙÀÌ¸é ¿À´ÃÀ» ½ÃÀÛÀ¸·Î 24½Ã°£ ÁֱⰡ ½ÃÀ۵˴ϴÙ. ¶ÇÇÑ, mmin, amin ¹× cminÀ» »ç¿ëÇÏ¸é ºÐ ´ÜÀ§·Î º¯°æµÈ ŸÀÓ ½ºÅÆÇÁ¸¦ ãÀ» ¼ö ÀÖ½À´Ï´Ù.
¿©·¯ºÐÀÇ °èÁ¤À¸·Î ·Î±×ÀÎÇÑ ÈÄ Áï½Ã ¾Æ·¡ ¸í·É¾î¸¦ ½ÇÇàÇϸé ÃÖ±Ù 1ºÐ ³»¿¡ ÀÐÀº ¸ðµç ÆÄÀÏÀ» ãÀ» ¼ö ÀÖ½À´Ï´Ù:
find . -amin -1./.bashrc/.bash_history./.xauthj5FCx1
find ¸í·É¾î¸¸À¸·Î ÆÄÀÏÀÇ À§Ä¡¸¦ ãÀ¸¸é ¸ÞŸ µ¥ÀÌÅÍÀÇ ÀϺÎÀÎ ÆÄÀÏÀÇ ¾×¼¼½º ½Ã°£ÀÌ º¯°æµÈ´Ù´Â »ç½Ç¿¡ À¯ÀÇÇϽʽÿÀ.
-newer, -anewer ¹× –cnewer ¿É¼ÇÀ» »ç¿ëÇÏ¸é Æ¯Á¤ ÆÄÀϰú ºñ±³ÇØ ¼öÁ¤ ¶Ç´Â ¾×¼¼½ºµÈ ÆÄÀÏÀ» ãÀ» ¼öµµ ÀÖ½À´Ï´Ù. ÀÌ´Â -mtime, -atime ¹× –ctime°ú ºñ½ÁÇÕ´Ï´Ù.
• -newer : º¸´Ù ÃÖ±Ù¿¡ ³»¿ëÀÌ ¼öÁ¤µÈ ÆÄÀÏ
• -anewer : º¸´Ù ÃÖ±Ù¿¡ ÀбⰡ ¼öÇàµÈ ÆÄÀÏ
• -cnewer : º¸´Ù ÃÖ±Ù¿¡ »óŰ¡ º¯°æµÈ ÆÄÀÏ
¸¶Áö¸· tar ÆÄÀÏ ÀÌÈÄ·Î ¾î¶² ¹æ¹ýÀ¸·ÎµçÁö ¼öÁ¤µÈ Ȩ µð·ºÅ丮ÀÇ ÆÄÀÏÀ» ¸ðµÎ ãÀ¸·Á¸é ¾Æ·¡ ¸í·É¾î¸¦ »ç¿ëÇϽʽÿÀ:
find . -newer backup.tar.gz
Å©±â¿¡ µû¸¥ ÆÄÀÏ Ã£±â
-size ¿É¼ÇÀº ÁöÁ¤µÈ Å©±â ±âÁØ¿¡ ºÎÇÕÇÏ´Â ÆÄÀÏÀ» ã¾ÆÁÝ´Ï´Ù. Å©±â°¡ 5MB ÀÌ»óÀÎ ¸ðµç ÆÄÀÏÀ» ãÀ¸·Á¸é ¾Æ·¡¿Í °°ÀÌ ÇϽʽÿÀ
find / -size +5000000c 2> /dev/null/var/log/lastlog/var/log/cups/access_log.4/var/spool/mail/bluher
¸¶Áö¸·¿¡ ¡°c¡±¸¦ ºÙÀÌ¸é °á°ú°¡ ¹ÙÀÌÆ® ´ÜÀ§·Î º¸°íµË´Ï´Ù. ±âº»ÀûÀ¸·Î find ¸í·É¾î´Â 512 ¹ÙÀÌÆ® ºí·ÏÀÇ ¼ö·Î Å©±â¸¦ º¸°íÇÕ´Ï´Ù. ¶ÇÇÑ, ¡°c¡±¸¦ ¡°k¡±·Î ±³Ã¼ÇÏ´Â °æ¿ì¿¡´Â ų·Î¹ÙÀÌÆ® ¼ö·Î, ¡°w¡±¸¦ »ç¿ëÇÏ´Â °æ¿ì¿¡´Â 2¹ÙÀÌÆ® ¿öµåÀÇ ¼ö·Î °á°ú¸¦ Ç¥½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù.
-size ¿É¼ÇÀº ¸ðµç Á¦·Î ¹ÙÀÌÆ® ÆÄÀÏÀ» ã°Å³ª ÀÌµé ÆÄÀÏÀ» /tmp/zerobyte Æú´õ·Î À̵¿Çϱâ À§ÇØ ÀÚÁÖ »ç¿ëµË´Ï´Ù. ¾Æ·¡ ¸í·É¾î°¡ ¹Ù·Î ÀÌ·¯ÇÑ ¿¬»êÀ» ¼öÇàÇÕ´Ï´Ù.
find test -type f -size 0 -exec mv {} /tmp/zerobyte \;
-exec ¿É¼ÇÀº find ¸í·É¾î°¡ ¸¸³ª°Ô µÇ´Â ÆÄÀÏÀÇ ¸ðµç ½© ¸í·É¾î¸¦ ¼öÇàÇÒ ¼ö ÀÖµµ·Ï ÇØÁÝ´Ï´Ù. ÈĹݺο¡¼ ÀÌ ¿É¼ÇÀÇ º¸´Ù ´Ù¾çÇÑ »ç¿ë ¿¹¸¦ È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. Áß°ýÈ£¸¦ »ç¿ëÇÏ¸é ºó ÆÄÀÏ °¢°¢À» À̵¿½Ãų ¼ö ÀÖ½À´Ï´Ù
¶ÇÇÑ, -empty ¿É¼ÇÀ» »ç¿ëÇÏ¸é ºó ÆÄÀÏÀ» ãÀ» ¼ö ÀÖ½À´Ï´Ù.
find test -empty test/footest/test
±ÇÇÑ ¹× ¼ÒÀ¯±Ç¿¡ µû¸¥ ÆÄÀÏ Ã£±â
find ¸í·É¾î´Â ½Ã½ºÅÛ º¸¾È ¸ð´ÏÅ͸µÀ» À§ÇØ ¾ø¾î¼´Â ¾ÈµÉ ¸í·É¾îÀÔ´Ï´Ù. ¾Æ·¡¿Í °°ÀÌ ±âÈ£¹ýÀ̳ª 8Áø¹ýÀ» ÅëÇØ »ç¿ë ±ÇÇÑÀÌ ³Î¸® ¿·ÁÀÖ´Â ÆÄÀÏÀ» ãÀ» ¼ö ÀÖ½À´Ï´Ù.
find . -type f -perm a=rwx -exec ls -l {} \;
¶Ç´Â
find . -type f -perm 777 -exec ls -l {} \;-rwxrwxrwx 1 bluher users 0 May 24 14:14 ./test.txt
À§ÀÇ ¸í·É¾î³ª ¾Æ·¡ ¸í·É¾îÀÇ °æ¿ì -exec ls –lÀ» ¼öÇàÇϰí Àֱ⠶§¹®¿¡, ¹ÝȯµÈ ÆÄÀÏÀÇ ½ÇÁ¦ »ç¿ë ±ÇÇÑÀ» È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¸í·É¾î´Â ¡°±âŸ »ç¿ëÀÚ¡± ¹× ±×·ìÀÌ ¸ðµÎ ¾²±â¸¦ ¼öÇàÇÒ ¼ö ÀÖ´Â ÆÄÀÏÀ» ã¾ÆÁÝ´Ï´Ù.
find plsql -type f -perm -ug=rw -exec ls -l {} \; 2>/dev/null
¶Ç´Â
find plsql -type f -perm -220 -exec ls -l {} \; 2>/dev/null -rw-rw-rw- 1 bluher users 4303 Jun 7 2004 plsql/FORALLSample/doc/otn_new.css-rw-rw-rw- 1 bluher users 10286 Jan 12 2005 plsql/FORALLSample/doc/readme.html-rw-rw-rw- 1 bluher users 22647 Jan 12 2005 plsql/FORALLSample/src/config.sql..¾Æ·¡ ¸í·É¾îµéÀ» ½ÇÇàÇÏ¸é »ç¿ëÀÚ, ±×·ì ¶Ç´Â µÑ ¸ðµÎ°¡ ¾²±â ÀÛ¾÷À» ÇÒ ¼ö ÀÖ´Â ÆÄÀÏÀ» ãÀ» ¼ö ÀÖ½À´Ï´Ù
find plsql -type f -perm /ug=rw -exec ls -l {} \; 2>/dev/null, or,find plsql -type f -perm /220 -exec ls -l {} \; 2>/dev/null -rw-r--r-- 1 bluher users 21473 May 3 16:02 plsql/regexpvalidate.zip-rw-rw-rw- 1 bluher users 4303 Jun 7 2004 plsql/FORALLSample/doc/otn_new.css-rw-rw-rw- 1 bluher users 10286 Jan 12 2005 plsql/FORALLSample/doc/readme.html-rw-rw-rw- 1 bluher users 22647 Jan 12 2005 plsql/FORALLSample/src/config.sql
À¥À̳ª ±âÁ¸ ¸Å´º¾ó¿¡´Â ¾Æ·¡ ¸í·É¾î·Î ³ª¿Í ÀÖÀ» °ÍÀÔ´Ï´Ù.
find . -perm +220 -exec ls -l {} \; 2> /dev/null
+ ±âÈ£´Â / ±âÈ£¿Í µ¿ÀÏÇÑ ¿ªÇÒÀ» ÇÏÁö¸¸, »õ·Î¿î ¹öÀüÀÇ GNU findutils¿¡¼´Â ±ÇÀåµÇÁö ¾Ê°í ÀÖ½À´Ï´Ù.
½Ã½ºÅÛ¿¡¼ ¾²±â °¡´ÉÇÑ ¸ðµç ÆÄÀÏÀ» ãÀ¸·Á¸é ¾Æ·¡ ¸í·É¾î¸¦ »ç¿ëÇϽʽÿÀ
find / -wholename '/proc' -prune -o -type f -perm -0002 -exec ls -l {} \;-rw-rw-rw- 1 bluher users 4303 Jun 7 2004/home/bluher/plsql/FORALLSample/doc/otn_new.css-rw-rw-rw- 1 bluher users 10286 Jan 12 2005 /home/bluher/plsql/FORALLSample/doc/readme.html...
4¹øÂ° »ç¿ë ±ÇÇÑ¿¡ ´ëÇØ ¾ÕÀ¸·Î Á¶±Ý ´õ ´Ù·ç°ÚÁö¸¸, ¸¶Áö¸· ÇʵåÀÇ ¡°2¡±´Â ¾²±â ºñÆ®·Îµµ ¾Ë·ÁÁ® ÀÖ´Â ÆÄÀÏ »ç¿ë ±ÇÇÑÀÇ ¡°±âŸ »ç¿ëÀÚ¡±¿¡ ÇØ´çµË´Ï´Ù. ¿ì¸®´Â ¼³Á¤µÈ ´Ù¸¥ »ç¿ë ±ÇÇÑÀÌ ¹«¾ùÀÌµç °ü°è ¾øÀÌ ±âŸ »ç¿ëÀÚ¸¦ À§ÇØ ¼³Á¤µÈ ¾²±â ±ÇÇÑÀ» °¡Áø ÆÄÀÏÀ» º¸°í ½Í´Ù´Â Ç¥½Ã·Î 0002¶ó´Â »ç¿ë ±ÇÇÑ ¸ðµå ¾Õ¿¡ ´ë½Ã¸¦ »ç¿ëÇß½À´Ï´Ù.
À§ÀÇ ¸í·É¾î¿¡¼´Â 3°¡Áö »õ·Î¿î °³³äÀÌ µµÀԵǾú½À´Ï´Ù. ÆÐÅÏÀÌ ¹ß°ßµÈ °æ¿ì, – pruneÀº ÆÄÀÏ ÆÐÅÏ ¡°/proc¡±¿¡¼ -wholename Å×½ºÆ®¸¦ »ç¿ëÇÔÀ¸·Î½á find ¸í·É¾î°¡ ÀÌ µð·ºÅ丮·Î ³»·Á¿ÀÁö ¾Êµµ·Ï ¸·¾ÆÁÝ´Ï´Ù. ºÒ¸° ¿¬»êÀÚ ¡°-o¡±¸¦ ÅëÇØ find ¸í·É¾î´Â ´Ù¸¥ µð·ºÅ丮¿¡¼ ¸í·É¾îÀÇ ³ª¸ÓÁö ºÎºÐÀ» ó¸®ÇÒ ¼ö ÀÖ½À´Ï´Ù. °¢ Ç¥Çö½Ä °£¿¡ °¡Á¤µÈ ¾Ï½ÃÀû and ¿¬»êÀÚ(-a)°¡ Àֱ⠶§¹®¿¡ ÁÂÃø Ç¥Çö½ÄÀÌ °ÅÁþ(false)À¸·Î Æò°¡µÈ °æ¿ì and µÚ¿¡ ³ª¿À´Â Ç¥Çö½ÄÀº Æò°¡µÇÁö ¾Ê½À´Ï´Ù. µû¶ó¼, -o ¿¬»êÀÚ°¡ ÇÊ¿äÇÕ´Ï´Ù. °Á¦ ¿ì¼± ¼øÀ§ Àû¿ëÀ» À§ÇØ °ýÈ£¸¦ »ç¿ëÇÏ´Â °Íó·³ find ¸í·É¾î´Â ºÒ¸° ¿¬»êÀÚ -not, !,µµ Áö¿øÇÕ´Ï´Ù.
½Ã½ºÅÛ °ü¸®ÀÚ´Â ÀÚÁÖ find ¸í·É¾î¸¦ ÅëÇØ ÇØ´ç »ç¿ëÀÚ³ª ±×·ìÀÇ À̸§ ¶Ç´Â ID¸¦ »ç¿ëÇØ ƯÁ¤ »ç¿ëÀÚ³ª ±×·ìÀÇ Á¤±Ô ÆÄÀÏÀ» °Ë»öÇϰí ÀÖ½À´Ï´Ù:
[root] $ find / -type f -user bluher -exec ls -ls {} \;
¿©±â, ÀÌ·¯ÇÑ ¸í·É¾îÀÇ Ãâ·Â¿¡ ´ëÇÑ °£´ÜÇÑ ¿¹Á¦°¡ ³ª¿Í ÀÖ½À´Ï´Ù:
4 -rw-r--r-- 1 bluher users 48 May 1 03:09 /home/bluher/public_html/.directory4 -rw-r--r-- 1 bluher users 925 May 1 03:09 /home/bluher/.profile
¶ÇÇÑ, find ¸í·É¾î¸¦ »ç¿ëÇØ ±×·ì º°·Î ÆÄÀÏÀ» °Ë»öÇÒ ¼öµµ ÀÖ½À´Ï´Ù:
[root] $ find / -type f -group users
find / -type d -gid 100
ÀÌ ¸í·É¾î¸¦ ½ÇÇàÇÏ¸é ±×·ì ID 100ÀÌ ¼ÒÀ¯Çϰí ÀÖ´Â µð·ºÅ丮 ¸ñ·ÏÀÌ ³ª¿É´Ï´Ù. ÇØ´çµÇ´Â uid ¶Ç´Â gid¸¦ ã±â À§ÇØ /etc/passwd ¶Ç´Â /etc/group ÆÄÀÏ¿¡¼ more ¶Ç´Â cat ¸í·É¾î¸¦ ½ÇÇàÇÒ ¼ö ÀÖ½À´Ï´Ù
ÀÌ ¸í·É¾î´Â ¾Ë·ÁÁø ƯÁ¤ »ç¿ëÀÚ ¹× ±×·ì¿¡ °üÇÑ ÆÄÀÏÀ» ã´Â °Í ¿Ü¿¡µµ »ç¿ëÀÚ³ª ±×·ìÀÌ ÁöÁ¤µÇÁö ¾ÊÀº ÆÄÀÏÀ» ã´Â µ¥µµ À¯¿ëÇÕ´Ï´Ù. ¾Æ·¡ ¸í·É¾î´Â /etc/passwd ¶Ç´Â /etc/group ÆÄÀÏ¿¡¼ ¸®½ºÆ®¸¦ °¡Áö°í ÀÖÁö ¾ÊÀº ÆÄÀÏÀ» ½Äº°ÇÕ´Ï´Ù.
find / -nouser -o -nogroup
À§ ¸í·É¾î´Â ½ÇÁ¦·Î ½Ã½ºÅÛ »ó¿¡ °á°ú¸¦ Á¦°øÇÏ´Â °ÍÀº ¾Æ´ÏÁö¸¸, ÆÄÀÏÀ» À̵¿ÇÑ ÈÄ¿¡ »ç¿ëÀÚ³ª ±×·ìÀÌ ÁöÁ¤µÇÁö ¾ÊÀº ÆÄÀÏÀ» ½Äº°ÇÏ´Â µ¥ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù
ÀÌÁ¦, º» ¼½¼Ç Ãʹݺο¡ ¾ð±ÞÇÑ º°µµÀÇ ³ôÀº »ç¿ë ±ÇÇÑ ¹®Á¦¸¦ ÇØ°áÇÒ ¼ö ÀÖ°Ô µÇ¾ú½À´Ï´Ù.
SGID ¹× SUID´Â UNIX ±â¹Ý ¿î¿µ üÁ¦ »óÀÇ ÆÄÀÏ ¹× µð·ºÅ丮¿¡ ÇÒ´çÇÒ ¼ö Àִ Ưº° ¾×¼¼½º ±ÇÇÑ Ç÷¡±×ÀÔ´Ï´Ù. ÄÄÇ»ÅÍ ½Ã½ºÅÛ ¾×¼¼½º¿¡ ÀÖ¾î ÀÏ¹Ý ±ÇÇÑÀ» °¡Áø »ç¿ëÀÚ°¡ ÀϽÃÀûÀ¸·Î ³ô¾ÆÁø ±ÇÇÑÀ» °¡Áö°í ¹ÙÀ̳ʸ® ½ÇÇà ÆÄÀÏÀ» ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù.
find / \( -perm -2000 -o -perm -4000 \) -ls167901 12 -rwsr-xr-x 1 root root 9340 Jun 16 2006 /usr/bin/rsh167334 12 -rwxr-sr-x 1 root tty 10532 May 4 2007 /usr/bin/wall
À§ ¸í·É¾î¿¡¼ °ýÈ£°¡ escape ó¸®µÈ °ÍÀ» º¼ ¼ö ÀÖ½À´Ï´Ù. ¶ÇÇÑ, ±ÇÇÑ °£ÀÇ Â÷ÀÌÁ¡À» È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. ù ¹øÂ° ÆÄÀÏ¿¡´Â SGID ±ÇÇÑÀÌ ¼³Á¤µÇ¾î ÀÖÀ¸¸ç µÎ ¹øÂ° ÆÄÀÏ¿¡´Â SUID ±ÇÇÑÀÌ ¼³Á¤µÇ¾î ÀÖ½À´Ï´Ù. À§ ¸í·É¾îÀÇ ¸¶Áö¸· ¿¬»êÀº -exec ls -dils ¿¬»êÀÇ find ¸í·É¾î¿Í À¯»çÇÕ´Ï´Ù
find ¸í·É¾î Á¦¾î
LinuxÀÇ ¸¹Àº ¸í·É¾î¿Í ´Þ¸®, find ¸í·É¾î´Â -r ¶Ç´Â -R ¿É¼ÇÀÌ ¾øÀ̵µ ¼ºêµð·ºÅ丮·Î ³»·Á°¡Áö ¾Ê½À´Ï´Ù. ÀÌ´Â ±âº»ÀûÀ¸·Î Áö¿øµË´Ï´Ù. ÇÏÁö¸¸, ¶§¿¡ µû¶ó À̸¦ Á¦ÇÑÇÏ°í ½ÍÀ» ¼ö ÀÖ½À´Ï´Ù. ÀÌ·² °æ¿ì, -depth, -maxdepth ¹× –mindepth ¿É¼Ç°ú –prune ¿¬»êÀÌ À¯¿ëÇÕ´Ï´Ù
-pruneÀÌ ¾ó¸¶³ª À¯¿ëÇÑÁö´Â ÀÌ¹Ì È®ÀÎÇ߱⠶§¹®¿¡ ÀÌÁ¦´Â -depth, -maxdepth ¹× -mindepth ¿É¼Ç¿¡ ´ëÇØ »ìÆìº¸°Ú½À´Ï´Ù.
-maxdepth ¹× -mindepth ¿É¼ÇÀ» »ç¿ëÇϸé find ¸í·É¾î¸¦ ÅëÇØ °Ë»öÇϰíÀÚ ÇÏ´Â µð·ºÅ丮 Æ®¸®ÀÇ ¼öÁØÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. find ¸í·É¾î°¡ ´Ü ÇÑ ¼öÁØÀÇ µð·ºÅ丮¸¦ ãµµ·Ï ÇÏ°í ½ÍÀº °æ¿ì¿¡´Â maxdepth ¿É¼ÇÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
¾Æ·¡ ¸í·É¾î¸¦ ½ÇÇàÇØ µð·ºÅ丮 Æ®¸®ÀÇ »óÀ§ 3°³ ¼öÁØÀÇ ·Î±× ÆÄÀÏÀ» °Ë»öÇÏ¸é –maxdepthÀÇ È¿°ú¸¦ È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¸°Ô ÇÏ¸é –maxdepth ¾øÀÌ ½ÇÇàÇÒ ¶§ º¸´Ù´Â ÈξÀ ÀûÀº Ãâ·Â °á°ú°¡ ³ª¿É´Ï´Ù
find / -maxdepth 3 -name "*log"
¶ÇÇÑ, find ¸í·É¾î¿¡°Ô µð·ºÅ丮 Æ®¸®¿¡¼ ÃÖ¼Ò 3°³ ¼öÁرîÁö µð·ºÅ丮¸¦ °Ë»öÇÒ °ÍÀ» Áö½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù.
find / -mindepth 3 -name "*log"
-depth ¿É¼ÇÀº ³»¿ë Æò°¡¿¡ ¾Õ¼ µð·ºÅ丮¸¦ Æò°¡ÇÒ ¼ö ÀÖµµ·Ï ÇØÁÝ´Ï´Ù. ¾Æ·¡ ¸í·É¾î´Â ÇÑ ¿¹ÀÔ´Ï´Ù.:
find -name "*test*" -depth./test/test./test./localbin/test./localbin/test_shell_var./localbin/test.txt./test2/test/test./test2/test./test2
<ÀÚ·áÃâó : http://egloos.zum.com/ndba/v/3049285 >