ºìÁªLinuxÃÅ»§
Linux°ïÖú

LinuxÏÂFindÃüÁîµÄʹÓÃ

·¢²¼Ê±¼ä:2014-06-16 10:46:33À´Ô´:ºìÁª×÷Õß:velcbo
findÊÇlinuxÖвéÕÒµÄÃüÁÆä¹¤×÷ЧÂÊȷʵ²»ÄÜ˵ÊǺܸߣ¬µ«ÊÇÐèÒª¾­³£Ê¹Óã¬ËùÒÔÒªÕÆÎÕfindµÄÓ÷¨¡£
find [directory] ѰÕÒÌõ¼þ²Ù×÷
»¹ÓÐÖÖ±íÊö·½Ê½£ºfind PATH OPTION [-exec COMMAND { } \;
##Èç¹ûÏëµÃµ½µÄÊä³ö½á¹ûÊǾø¶ÔĿ¼£¬ÄÇô²éÕÒµÄdirectoryҲҪд¾ø¶Ô·¾¶£¬Èç¹ûдÏà¶Ô·¾¶£¬Êä³öµÄÒ²ÊÇÏà¶Ô·¾¶
¸ÃÃüÁîÖеÄѰÕÒÌõ¼þ¿ÉÒÔÊÇÒ»¸öÓÃÂß¼­ÔËËã·û not¡¢and¡¢or ×é³ÉµÄ¸´ºÏÌõ¼þ¡£Âß¼­ÔËËã·û and¡¢or¡¢not µÄº¬ÒåΪ£º

(1) and£ºÂß¼­Ó룬ÔÚÃüÁîÖÐÓá°-a¡±±íʾ£¬ÊÇϵͳȱʡµÄÑ¡Ï±íʾֻÓе±Ëù¸øµÄÌõ¼þ¶¼Âú×ãʱ£¬Ñ°ÕÒÌõ¼þ²ÅËãÂú×ã¡£ÀýÈ磺
find -name ¡¯tmp¡¯ -xtype c -user ¡¯inin¡¯
¸ÃÃüÁîѰÕÒÈý¸ö¸ø¶¨Ìõ¼þ¶¼Âú×ãµÄËùÓÐÎļþ
(2) or£ºÂß¼­»ò£¬ÔÚÃüÁîÖÐÓá°-o¡±±íʾ¡£¸ÃÔËËã·û±íʾֻҪËù¸øµÄÌõ¼þÖÐÓÐÒ»¸öÂú×ãʱ£¬Ñ°ÕÒÌõ¼þ¾ÍËãÂú×ã¡£ÀýÈ磺
find -name ¡¯tmp¡¯ -o -name ¡¯mina*¡¯
¸ÃÃüÁî²éѯÎļþÃûΪ¡¯tmp¡¯»òÊÇÆ¥Å䡯mina*¡¯µÄËùÓÐÎļþ¡£
(3) not£ºÂß¼­·Ç£¬ÔÚÃüÁîÖÐÓá°!¡±±íʾ¡£¸ÃÔËËã·û±íʾ²éÕÒ²»Âú×ãËù¸øÌõ¼þµÄÎļþ¡£ÀýÈ磺
find ! -name ¡¯tmp¡¯
¸ÃÃüÁî²éѯÎļþÃû²»ÊÇ¡¯tmp¡¯µÄËùÓÐÎļþ¡£
ÐèҪ˵Ã÷µÄÊÇ£ºµ±Ê¹ÓúܶàµÄÂß¼­Ñ¡Ïîʱ£¬¿ÉÒÔÓÃÀ¨ºÅ°ÑÕâЩѡÏîÀ¨ÆðÀ´¡£ÎªÁ˱ÜÃâShell±¾Éí¶ÔÀ¨ºÅÒýÆðÎó½â£¬ÔÚ»°ºÅǰÐèÒª¼ÓתÒå×Ö·û¡°\¡±À´È¥³ýÀ¨ºÅµÄÒâÒå¡£Àý£º
find \(-name ¡¯tmp¡¯ -xtype c -user ¡¯inin¡¯ \)

ÏÂÃæÎÒ˵һÏÂfindÃüÁîµÄoption
ÔÚoptionÖУ¬¾ßÌåÓвÎÊý£º
-name ¡¯×Ö´®¡¯²éÕÒÎļþÃûÆ¥ÅäËù¸ø×Ö´®µÄËùÓÐÎļþ£¬×Ö´®ÄÚ¿ÉÓÃͨÅä·û *¡¢?¡¢[ ]¡£
-lname ¡¯×Ö´®¡¯²éÕÒÎļþÃûÆ¥ÅäËù¸ø×Ö´®µÄËùÓзûºÅÁ´½ÓÎļþ£¬×Ö´®ÄÚ¿ÉÓÃͨÅä·û *¡¢?¡¢[ ]¡£
-gid n ²éÕÒÊôÓÚIDºÅΪ n µÄÓû§×éµÄËùÓÐÎļþ¡£
-uid n ²éÕÒÊôÓÚIDºÅΪ n µÄÓû§µÄËùÓÐÎļþ¡£
-group ¡¯×Ö´®¡¯²éÕÒÊôÓÚÓû§×éÃûΪËù¸ø×Ö´®µÄËùÓеÄÎļþ¡£
-user ¡¯×Ö´®¡¯²éÕÒÊôÓÚÓû§ÃûΪËù¸ø×Ö´®µÄËùÓеÄÎļþ¡£
-empty ²éÕÒ´óСΪ 0µÄĿ¼»òÎļþ¡£
-path ¡¯×Ö´®¡¯²éÕÒ·¾¶ÃûÆ¥ÅäËù¸ø×Ö´®µÄËùÓÐÎļþ£¬×Ö´®ÄÚ¿ÉÓÃͨÅä·û*¡¢?¡¢[ ]¡£
-perm ȨÏÞ²éÕÒ¾ßÓÐÖ¸¶¨È¨ÏÞµÄÎļþºÍĿ¼£¬È¨Ï޵ıíʾ¿ÉÒÔÈç711£¬644¡£
-size n[bckw] ²éÕÒÖ¸¶¨Îļþ´óСµÄÎļþ£¬nºóÃæµÄ×Ö·û±íʾµ¥Î»£¬È±Ê¡Îª b£¬´ú±í512×ֽڵĿ顣
-type x ²éÕÒÀàÐÍΪ x µÄÎļþ£¬x ΪÏÂÁÐ×Ö·ûÖ®Ò»£º
-maxdepyh n Ö»²éÕÒÖÆ¶¨Ä¿Â¼ÏµķûºÏÆ¥ÅäµÄÎļþ»òĿ¼
b ¿éÉ豸Îļþ
c ×Ö·ûÉ豸Îļþ
d Ŀ¼Îļþ
p ÃüÃû¹ÜµÀ(FIFO)
f ÆÕͨÎļþ
l ·ûºÅÁ´½ÓÎļþ(symboliclinks)
s socketÎļþ
-xtype x Óë -type »ù±¾Ïàͬ£¬µ«Ö»²éÕÒ·ûºÅÁ´½ÓÎļþ¡£
ÒÔʱ¼äΪÌõ¼þ²éÕÒ
-amin n ²éÕÒn·ÖÖÓÒÔǰ±»·ÃÎʹýµÄËùÓÐÎļþ¡£
-atime n ²éÕÒnÌìÒÔǰ±»·ÃÎʹýµÄËùÓÐÎļþ¡£
-cmin n ²éÕÒn·ÖÖÓÒÔǰÎļþ״̬±»Ð޸ĹýµÄËùÓÐÎļþ¡£
-ctime n ²éÕÒnÌìÒÔǰÎļþ״̬±»Ð޸ĹýµÄËùÓÐÎļþ¡£
-mmin n ²éÕÒn·ÖÖÓÒÔǰÎļþÄÚÈݱ»Ð޸ĹýµÄËùÓÐÎļþ¡£
-mtime n ²éÕÒnÌìÒÔǰÎļþÄÚÈݱ»Ð޸ĹýµÄËùÓÐÎļþ¡£
-print£º½«ËÑË÷½á¹ûÊä³öµ½±ê×¼Êä³ö¡£
Àý×Ó£ºÔÚrootÒÔ¼°×ÓĿ¼²éÕÒ²»°üÀ¨Ä¿Â¼/root/binµÄ£¬greekÓû§µÄ£¬ÎļþÀàÐÍΪÆÕͨÎļþµÄ£¬3Ìì֮ǰµÄÃûΪtest-find.cµÄÎļþ£¬²¢½«½á¹¹Êä³ö£¬findÃüÁîÈçÏ£º
find / -name "test-find.c" -typef -mtime +3 -user greek -prune /root/bin -print
µ±È»ÔÚÕâÆäÖУ¬-printÊÇÒ»¸öĬÈÏÑ¡ÏÎÒÃDz»±Ø¿ÌÒâÈ¥ÅäÖÃËü¡£
ÎÒÃÇÔÙ¿´Ò»ÏÂexecÑ¡Ï
-exec£º¶ÔËÑË÷µÄ½á¹¹Ö¸ÁîÖ¸¶¨µÄshellÃüÁî¡£×¢Òâ¸ñʽҪÕýÈ·£º"-execÃüÁî {} \;"
ÔÚ}ºÍ\Ö®¼äÒ»¶¨ÒªÓпոñ²ÅÐÐ;
{}±íʾÃüÁîµÄ²ÎÊý¼´ÎªËùÕÒµ½µÄÎļþ;ÃüÁîµÄĩβ±ØÐëÒÔ¡° \;¡±½áÊø¡£
Àý×Ó£º¶ÔÉÏÊöÀý×ÓËÑË÷³öÀ´µÄÎļþ½øÐÐɾ³ý²Ù×÷£¬ÃüÁîÈçÏ£º
find / -name "test-find.c" -typef -mtime +3 -user greek -prune /root/bin -exec rm {} \;
findÃüÁîÖ¸ÁîʵÀý£º
find . - name ¡®main*¡¯ - exec more {} \;
% ²éÕÒµ±Ç°Ä¿Â¼ÖÐËùÓÐÒÔmain¿ªÍ·µÄÎļþ£¬²¢ÏÔʾÕâЩÎļþµÄÄÚÈÝ¡£
find . \(- name a.out - o - name¡®*.o¡¯\)> - atime +7 - exec rm {} \;
% ɾ³ýµ±Ç°Ä¿Â¼ÏÂËùÓÐÒ»ÖÜÖ®ÄÚûÓб»·ÃÎʹýµÄa.out»ò*.oÎļþ¡£
% ÃüÁîÖеġ°.¡±±íʾµ±Ç°Ä¿Â¼£¬´Ëʱfind ½«´Óµ±Ç°Ä¿Â¼¿ªÊ¼£¬Öð¸öÔÚÆä×ÓĿ¼ÖвéÕÒÂú×ãºóÃæÖ¸¶¨Ìõ¼þµÄÎļþ¡£
% ¡°\(¡±ºÍ¡°\)¡±±íʾÀ¨ºÅ()£¬ÆäÖеġ°\¡±³ÆÎª×ªÒå·û¡£Ö®ËùÒÔÕâÑùдÊÇÓÉÓÚ¶ÔShell ¶øÑÔ£¬(ºÍ)ÁíÓв»Í¬µÄº¬Ò壬¶ø²»ÊÇÕâÀïµÄÓÃÓÚ×éºÏÌõ¼þµÄÓÃ;¡£
% ¡°-name a.out¡±ÊÇÖ¸Òª²éÕÒÃûΪa.outµÄÎļþ;
% ¡°-name ¡®*.o¡¯¡±ÊÇÖ¸Òª²éÕÒËùÓÐÃû×ÖÒÔ .o ½áβµÄÎļþ¡£
ÕâÁ½¸ö -name Ö®¼äµÄ -o ±íʾÂß¼­»ò(or)£¬¼´²éÕÒÃû×ÖΪa.out»òÃû×ÖÒÔ .o½áβµÄÎļþ¡£
findÃüÁîÔÚµ±Ç°Ä¿Â¼¼°Æä×ÓĿ¼ÏÂÕÒµ½ÕâÑðµÄÎļþÖ®ºó£¬ÔÙ½øÐÐÅжϣ¬¿´Æä×îºó·ÃÎÊʱ¼äÊÇ·ñÔÚ7ÌìÒÔǰ(Ìõ¼þ -atime +7)£¬ÈôÊÇ£¬Ôò¶Ô¸ÃÎļþÖ´ÐÐÃüÁîrm(-exec rm {} \;)¡£
ÆäÖÐ {} ´ú±íµ±Ç°²éµ½µÄ·ûºÏÌõ¼þµÄÎļþÃû£¬\;ÔòÊÇÓï·¨ËùÒªÇóµÄ¡£
ÉÏÊöÃüÁîÖеÚÒ»ÐеÄ×îºóÒ»¸ö \ ÊÇÐøÐзû¡£µ±ÃüÁîÌ«³¤¶øÔÚÒ»ÐÐд²»ÏÂʱ£¬¿ÉÊäÈëÒ»¸ö \£¬Ö®ºóϵͳ½«ÏÔʾһ¸ö >£¬Ö¸Ê¾Óû§¼ÌÐøÊäÈëÃüÁî¡£
ÒÔÉϾÍÊǽñÌìÎÒѧϰfindÃüÁîµÄÈ«²¿ÄÚÈÝ£¬Èç¹ûÓв»×ãµÄµØ·½»¹Çë´ó¼ÒÖ¸³ö¡£

À´Ô´£ºLinuxÉçÇø
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 0 ÌõÆÀÂÛ