ÍøÂçѧԺ w3popÉçÇø ÍøÂç×ÊÔ´ ITÐÂÎÅ

w3pop.com :: ÍøÂçѧԺ :: Linux :: linux find ÃüÁîʵÀý

»áÔ±µÇ½

ÕʺÅ

ÃÜÂë

»Ø´ð

¼ÇסÃÜÂë

Íü¼ÇÃÜÂë? ×¢²á

Linux
linux find ÃüÁîÊ..
¿ìËÙ¹¹¼ÜLinux ·À..
UbuntuʵÓüòµ¥µÄ..
SSH·½Ê½Ô¶³Ì¿ØÖÆ ..
Ubuntu ΪÓû§·ÖÅ..
Ubuntu ServerÅäÖ..
Ubuntu ServerÅäÖ..
Debian ÎļþºÍÄ¿Â..
Linux ÈçºÎ½øÐÐÍø..
Linux ÈçºÎ½øÐаü..
UbuntuͨÓûù´¡½Ì..
DebianϵÁÐ - Éè¶..
Linux »ù´¡ÖªÊ¶
Linux ½éÉÜ

linux find ÃüÁîʵÀý


×÷Õß:ÇàÅ£ ·­Òë/ÕûÀí:w3pop.com ·¢²¼:2007-05-25 ä¯ÀÀ:6117 :: ::

·find  path  -option  [  -print ]  [ -exec  -ok  command ]  {} \;
#-print ½«²éÕÒµ½µÄÎļþÊä³öµ½±ê×¼Êä³ö
#-exec  command  {} \;     -----½«²éµ½µÄÎļþÖ´ÐÐcommand²Ù×÷,{} ºÍ \;Ö®¼äÓпոñ
#-ok ºÍ-execÏàͬ£¬Ö»²»¹ýÔÚ²Ù×÷ǰҪѯÓû§

====================================================

-name  filename             #²éÕÒÃûΪfilenameµÄÎļþ
-perm                       #°´Ö´ÐÐȨÏÞÀ´²éÕÒ
-user   username            #°´ÎļþÊôÖ÷À´²éÕÒ
-group groupname            #°´×éÀ´²éÕÒ
-mtime  -n +n               #°´Îļþ¸ü¸Äʱ¼äÀ´²éÕÒÎļþ£¬-nÖ¸nÌìÒÔÄÚ£¬+nÖ¸nÌìÒÔǰ
-atime   -n +n              #°´Îļþ·ÃÎÊʱ¼äÀ´²é
-perm                        #°´Ö´ÐÐȨÏÞÀ´²éÕÒ
-user   username            #°´ÎļþÊôÖ÷À´²éÕÒ
-group groupname            #°´×éÀ´²éÕÒ
-mtime  -n +n               #°´Îļþ¸ü¸Äʱ¼äÀ´²éÕÒÎļþ£¬-nÖ¸nÌìÒÔÄÚ£¬+nÖ¸nÌìÒÔǰ
-atime   -n +n              #°´Îļþ·ÃÎÊʱ¼äÀ´²éÕÒÎļþ£¬-nÖ¸nÌìÒÔÄÚ£¬+nÖ¸nÌìÒÔǰ
-ctime   -n +n              #°´Îļþ´´½¨Ê±¼äÀ´²éÕÒÎļþ£¬-nÖ¸nÌìÒÔÄÚ£¬+nÖ¸nÌìÒÔǰ
-nogroup                    #²éÎÞÓÐЧÊô×éµÄÎļþ£¬¼´ÎļþµÄÊô×éÔÚ/etc/groupsÖв»´æÔÚ
-nouser                     #²éÎÞÓÐЧÊôÖ÷µÄÎļþ£¬¼´ÎļþµÄÊôÖ÷ÔÚ/etc/passwdÖв»´æ
-newer  f1 !f2              ÕÒÎļþ£¬-nÖ¸nÌìÒÔÄÚ£¬+nÖ¸nÌìÒÔǰ
-ctime   -n +n              #°´Îļþ´´½¨Ê±¼äÀ´²éÕÒÎļþ£¬-nÖ¸nÌìÒÔÄÚ£¬+nÖ¸nÌìÒÔǰ
-nogroup                    #²éÎÞÓÐЧÊô×éµÄÎļþ£¬¼´ÎļþµÄÊô×éÔÚ/etc/groupsÖв»´æÔÚ
-nouser                     #²éÎÞÓÐЧÊôÖ÷µÄÎļþ£¬¼´ÎļþµÄÊôÖ÷ÔÚ/etc/passwdÖв»´æ
-newer  f1 !f2              #²é¸ü¸Äʱ¼ä±Èf1е«±Èf2¾ÉµÄÎļþ
-type    b/d/c/p/l/f        #²éÊÇ¿éÉ豸¡¢Ä¿Â¼¡¢×Ö·ûÉ豸¡¢¹ÜµÀ¡¢·ûºÅÁ´½Ó¡¢ÆÕͨÎļþ
-size     n[c]              #²é³¤¶ÈΪn¿é[»òn×Ö½Ú]µÄÎļþ
-depth                      #ʹ²éÕÒÔÚ½øÈë×ÓĿ¼ǰÏÈÐвéÕÒÍ걾Ŀ¼
-fstype                     #²é¸ü¸Äʱ¼ä±Èf1е«±Èf2¾ÉµÄÎļþ
-type    b/d/c/p/l/f        #²éÊÇ¿éÉ豸¡¢Ä¿Â¼¡¢×Ö·ûÉ豸¡¢¹ÜµÀ¡¢·ûºÅÁ´½Ó¡¢ÆÕͨÎļþ
-size     n[c]              #²é³¤¶ÈΪn¿é[»òn×Ö½Ú]µÄÎļþ
-depth                      #ʹ²éÕÒÔÚ½øÈë×ÓĿ¼ǰÏÈÐвéÕÒÍ걾Ŀ¼
-fstype                     #²éλÓÚijһÀàÐÍÎļþϵͳÖеÄÎļþ£¬ÕâЩÎļþϵͳÀàÐÍͨ³£¿É ÔÚ/etc/fstabÖÐÕÒµ½
-mount                      #²éÎļþʱ²»¿çÔ½Îļþϵͳmountµã
-follow                     #Èç¹ûÓöµ½·ûºÅÁ´½ÓÎļþ£¬¾Í¸ú×ÙÁ´½ÓËùÖ¸µÄÎļþ
-cpio                     #²éλÓÚijһÀàÐÍÎļþϵͳÖеÄÎļþ£¬ÕâЩÎļþϵͳÀàÐÍͨ³£¿É ÔÚ/etc/fstabÖÐÕÒµ½
-mount                      #²éÎļþʱ²»¿çÔ½Îļþϵͳmountµã
-follow                     #Èç¹ûÓöµ½·ûºÅÁ´½ÓÎļþ£¬¾Í¸ú×ÙÁ´½ÓËùÖ¸µÄÎļþ
-cpio                       #¶ÔÆ¥ÅäµÄÎļþʹÓÃcpioÃüÁ½«ËûÃDZ¸·Ýµ½´Å´øÉ豸ÖÐ
-prune                      #ºöÂÔij¸öĿ¼

====================================================
$find  ~  -name  "*.txt"  -print    #ÔÚ$HOMEÖвé.txtÎļþ²¢ÏÔʾ
$find  .   -name  "*.txt"  -print
$find  .   -name  "[A-Z]*"  -pri26nbsp;   #¶ÔÆ¥ÅäµÄÎļþʹÓÃcpioÃüÁ½«ËûÃDZ¸·Ýµ½´Å´øÉ豸ÖÐ
-prune                              #ºöÂÔij¸öĿ¼

=====================================================
$find  ~  -name  "*.txt"  -print    #ÔÚ$HOMEÖвé.txtÎļþ²¢ÏÔʾ
$find  .   -name  "*.txt"  -print
$find  .   -name  "[A-Z]*"  -print  #²éÒÔ´óд×Öĸ¿ªÍ·µÄÎļþ
$find  /etc  -name  "host*"  -print #²éÒÔhost¿ªÍ·µÄÎļþ
$find  .  -name  "[a-z][a-z][0--9][0--9].txt"   -print  #²éÒÔÁ½¸öСд×ÖĸºÍÁ½¸öÊý×Ö¿ªÍ·µÄtxtÎļþ
$find .  -perm  755  -print
$find  .  -perm -007  -exec ls -l {} \;  #²éËùÓÐÓû§¶¼¿É¶ÁдִÐеÄÎļþͬ-perm 777
$find  . -type d  -print
$find  .  !  -type  d  -print
$find  .  -type l  -print

$find  .  -size  +1000000c  -print       #²é³¤¶È´óÓÚ1MbµÄÎļþ
$find  .  -size  100c        -print      # ²é³¤¶ÈΪ100cµÄÎļþ
$find  .  -size  +10  -print             #²é³¤¶È³¬¹ýÆÚ×÷·Ï10¿éµÄÎļþ£¨1¿é=512×Ö½Ú£©

$cd /
$find  etc  home  apps   -depth  -print  | cpio  -ivcdC65536  -o  /dev/rmt0
$find  /etc -name "passwd*"  -exec grep  "cnscn"  {}  \;  #¿´ÊÇ·ñ´æÔÚcnscnÓû§
$find . -name "yao*"  | xargs file
$find  . -name "yao*"  |  xargs  echo   "" > /tmp/core.log
$find  . -name "yao*"  | xargs  chmod  o-w

======================================================

find  -name april*                      ÔÚµ±Ç°Ä¿Â¼Ï²éÕÒÒÔapril¿ªÊ¼µÄÎļþ
find  -name  april*  fprint file        ÔÚµ±Ç°Ä¿Â¼Ï²éÕÒÒÔapril¿ªÊ¼µÄÎļþ£¬²¢°Ñ½á¹ûÊä³öµ½fileÖÐ
find  -name ap* -o -name may*  ²éÕÒÒÔap»òmay¿ªÍ·µÄÎļþ
find  /mnt  -name tom.txt  -ftype vfat  ÔÚ/mntϲéÕÒÃû³ÆÎªtom.txtÇÒÎļþϵͳÀàÐÍΪvfatµÄÎļþ
find  /mnt  -name t.txt ! -ftype vfat   ÔÚ/mntϲéÕÒÃû³ÆÎªtom.txtÇÒÎļþϵͳÀàÐͲ»ÎªvfatµÄÎļþ
find  /tmp  -name wa* -type l           ÔÚ/tmpϲéÕÒÃûΪwa¿ªÍ·ÇÒÀàÐÍΪ·ûºÅÁ´½ÓµÄÎļþ
find  /home  -mtime  -2                 ÔÚ/homeϲé×î½üÁ½ÌìÄڸ͝¹ýµÄÎļþ
find /home   -atime -1                  ²é1ÌìÖ®ÄÚ±»´æÈ¡¹ýµÄÎļþ
find /home -mmin   +60                  ÔÚ/homeϲé60·ÖÖÓǰ¸Ä¶¯¹ýµÄÎļþ
find /home  -amin  +30                  ²é×î½ü30·ÖÖÓǰ±»´æÈ¡¹ýµÄÎļþ
find /home  -newer  tmp.txt             ÔÚ/homeϲé¸üÐÂʱ¼ä±Ètmp.txt½üµÄÎļþ»òĿ¼
find /home  -anewer  tmp.txt            ÔÚ/homeÏÂ²é´æÈ¡Ê±¼ä±Ètmp.txt½üµÄÎļþ»òĿ¼
find  /home  -used  -2                  ÁгöÎļþ»òĿ¼±»¸Ä¶¯¹ýÖ®ºó£¬ÔÚ2ÈÕÄÚ±»´æÈ¡¹ýµÄÎļþ»òĿ¼
find  /home  -user cnscn                Áгö/homeĿ¼ÄÚÊôÓÚÓû§cnscnµÄÎļþ»òĿ¼
find  /home  -uid  +501                 Áгö/homeĿ¼ÄÚÓû§µÄʶ±ðÂë´óÓÚ501µÄÎļþ»òĿ¼
find  /home  -group  cnscn              Áгö/homeÄÚ×éΪcnscnµÄÎļþ»òĿ¼
find  /home  -gid 501                   Áгö/homeÄÚ×éidΪ501µÄÎļþ»òĿ¼
find  /home  -nouser                    Áгö/homeÄÚ²»ÊôÓÚ±¾µØÓû§µÄÎļþ»òĿ¼
find  /home  -nogroup                   Áгö/homeÄÚ²»ÊôÓÚ±¾µØ×éµÄÎļþ»òĿ¼
find  /home   -name tmp.txt   -maxdepth  4  Áгö/homeÄÚµÄtmp.txt ²éʱÉî¶È×î¶àΪ3²ã
find  /home  -name tmp.txt  -mindepth  3  ´ÓµÚ2²ã¿ªÊ¼²é
find  /home  -empty                     ²éÕÒ´óСΪ0µÄÎļþ»ò¿ÕĿ¼
find  /home  -size  +512k               ²é´óÓÚ512kµÄÎļþ
find  /home  -size  -512k               ²éСÓÚ512kµÄÎļþ
find  /home  -links  +2                 ²éÓ²Á¬½ÓÊý´óÓÚ2µÄÎļþ»òĿ¼
find  /home  -perm  0700                ²éȨÏÞΪ700µÄÎļþ»òĿ¼
find  /tmp  -name tmp.txt  -exec cat {} \;
find  /tmp  -name  tmp.txt  -ok  rm {} \;

find   /  -amin   -10       # ²éÕÒÔÚϵͳÖÐ×îºó10·ÖÖÓ·ÃÎʵÄÎļþ
find   /  -atime  -2         # ²éÕÒÔÚϵͳÖÐ×îºó48Сʱ·ÃÎʵÄÎļþ
find   /  -empty              # ²éÕÒÔÚϵͳÖÐΪ¿ÕµÄÎļþ»òÕßÎļþ¼Ð
find   /  -group  cat        # ²éÕÒÔÚϵͳÖÐÊôÓÚ groupcatµÄÎļþ
find   /  -mmin  -5         # ²éÕÒÔÚϵͳÖÐ×îºó5·ÖÖÓÀïÐ޸ĹýµÄÎļþ
find   /  -mtime  -1        #²éÕÒÔÚϵͳÖÐ×îºó24СʱÀïÐ޸ĹýµÄÎļþ
find   /  -nouser             #²éÕÒÔÚϵͳÖÐÊôÓÚ×÷·ÏÓû§µÄÎļþ
find   /  -user   fred       #²éÕÒÔÚϵͳÖÐÊôÓÚFREDÕâ¸öÓû§µÄÎļþ

²éµ±Ç°Ä¿Â¼ÏµÄËùÓÐÆÕͨÎļþ
--------------------------------------------------------------------------------

# find . -type f -exec ls -l {} \;
-rw-r--r--    1 root     root        34928 2003-02-25  ./conf/httpd.conf
-rw-r--r--    1 root     root        12959 2003-02-25  ./conf/magic
-rw-r--r--    1 root     root          180 2003-02-25  ./conf.d/README
²éµ±Ç°Ä¿Â¼ÏµÄËùÓÐÆÕͨÎļþ£¬²¢ÔÚ- e x e cÑ¡ÏîÖÐʹÓÃls -lÃüÁËüÃÇÁгö


=================================================
ÔÚ/ l o g sĿ¼ÖвéÕÒ¸ü¸Äʱ¼äÔÚ5ÈÕÒÔǰµÄÎļþ²¢É¾³ýËüÃÇ£º
$ find logs -type f -mtime +5 -exec  -ok  rm {} \;


=================================================
²éѯµ±ÌìÐ޸ĹýµÄÎļþ
[root@book class]# find  ./  -mtime  -1  -type f  -exec  ls -l  {} \;


=================================================
²éѯÎļþ²¢Ñ¯ÎÊÊÇ·ñÒªÏÔʾ
[root@book class]# find  ./  -mtime  -1  -type f  -ok  ls -l  {} \; 
< ls ... ./classDB.inc.php > ? y
-rw-r--r--    1 cnscn    cnscn       13709  1ÔÂ 12 12:22 ./classDB.inc.php
[root@book class]# find  ./  -mtime  -1  -type f  -ok  ls -l  {} \; 
< ls ... ./classDB.inc.php > ? n
[root@book class]#

=================================================
²éѯ²¢½»¸øawkÈ¥´¦Àí
[root@book class]# who  |  awk  '{print $1"\t"$2}'
cnscn   pts/0

=================================================
awk---grep---sed

[root@book class]# df  -k |  awk '{print $1}' |  grep  -v  'none' |  sed  s"/\/dev\///g"
Îļþϵͳ
sda2
sda1
[root@book class]# df  -k |  awk '{print $1}' |  grep  -v  'none'
Îļþϵͳ
/dev/sda2
/dev/sda1


1)ÔÚ/tmpÖвéÕÒËùÓеÄ*.h£¬²¢ÔÚÕâЩÎļþÖвéÕÒ“SYSCALL_VECTOR"£¬×îºó´òÓ¡³öËùÓаüº¬"SYSCALL_VECTOR"µÄÎļþÃû

A) find  /tmp  -name  "*.h"  | xargs  -n50  grep SYSCALL_VECTOR
B) grep  SYSCALL_VECTOR  /tmp/*.h | cut   -d':'  -f1| uniq > filename
C) find  /tmp  -name "*.h"  -exec grep "SYSCALL_VECTOR"  {}  \; -print


2)find / -name filename -exec rm -rf {} \;
find / -name filename -ok rm -rf {} \;


3)±ÈÈçÒª²éÕÒ´ÅÅÌÖдóÓÚ3MµÄÎļþ£º
find . -size +3000k -exec ls -ld {} ;


4)½«find³öÀ´µÄ¶«Î÷¿½µ½ÁíÒ»¸öµØ·½
find *.c -exec cp '{}' /tmp ';'

Èç¹ûÓÐÌØÊâÎļþ£¬¿ÉÒÔÓÃcpio£¬Ò²¿ÉÒÔÓÃÕâÑùµÄÓï·¨£º
find dir -name filename -print | cpio -pdv newdir


6)²éÕÒ2004-11-30 16:36:37ʱ¸ü¸Ä¹ýµÄÎļþ
# A=`find ./ -name "*php"` |  ls -l --full-time $A 2>/dev/null | grep "2004-11-30 16:36:37"

ÆÀÂÛ (0) All