首页 > 其他 > 详细

find 命令  

时间:2015-12-20 01:54:58      阅读:170      评论:0      收藏:0      [点我收藏+]

文件命令查找之find:

     个人理解的(文件查找)就是按照某种需要的条件对符合条件的文件进行筛选。 find和grep是不一样的,grep是用来查找文本内容的,查找字符串的,而find是用来查找文件的。{grep找文本,find找文件}。find是实时查找工具也就是说它随时都可以查找出更新或删除的文件。find工作时是遍历整个文件系统的,根据给的条件在文件系统中一个一个的找。

        find的特性,因为查找时要遍历整个文件系统,所以它的查找速度会慢下来,find查找具有实时性,它是精确查找,支持glob通配符。  下面是一些实例。


find用法:find   路径 (告诉find去哪里找)   命令参数[查找条件]    输出形式(处理动作)

              

               根据文件名查找:-name    实例

                                         -iname 不区分文件名大小写

    [root@localhost ~]# find /etc -name  default
                                /etc/default
                               /etc/sysconfig/networking/profiles/default



    一、  根据文件从属关系查找:-user

    [root@localhost ~]# find /tmp -user root  -exec ls -la {} \;
     total 12
     drwxrwxrwt.  3 root root 4096 Dec 19 15:45 .

   通过上面这个例子就知道  这个文件属主的确是 root,后面的 -exec  ls -la {} \;是处理动作,意思就是把找到的内容做什么样的处理。

                                     

       -ok 作用和exec一样意思 只是要询问操作者而已。来看看实例

       -print为标准输出(默认就为标准输出)

       -delete删除查找出的文件

       -fls把找出的信息保存到指定文件

        [root@localhost ~]# find /tmp -user root -ok ls -ld {} \;
                                   < ls ... /tmp > ? y(此处是询问)
                     drwxrwxrwt. 3 root root 4096 Dec 19 15:45 /tmp
注意使用格式:-exec 你希望怎么处理查找出来的文件 {} \;一定要注意{}和\之间的空格

                       -exec  命令 {} \;



 1、根据组查找:-group

 [root@localhost ~]# find /tmp -group root -exec ls -ld {} \;
drwxrwxrwt. 3 root root 4096 Dec 19 15:45 /tmp
drwxrwxrwt 2 root root 4096 Dec 19 14:36 /tmp/.ICE-unix



 2、根据uid查找我们先来指定一个用户的uid

                               useradd -u clown

[root@localhost ~]# find /home -uid 520 -exec ls -ld {} \;
  drwx------ 4 clown clown 4096 Dec 19 16:57 /home/clown
  -rw-r--r-- 1 clown clown 124 Jul 24 02:55 /home/clown/.bashrc



 3、根据gid来查:-gid

   [root@localhost ~]# find /home -gid 520 -exec ls -ld {} \;
drwx------ 4 clown clown 4096 Dec 19 16:57 /home/clown
-rw-r--r-- 1 clown clown 124 Jul 24 02:55 /home/clown/.bashrc



 4、根据文件大小来查找: -size

-size查找大于100M的文件,可根据自己先需要加上G,M,k


[root@localhost ~]# find /var -size +100M  -exec ls -lh {} \;
[root@localhost ~]# echo $?
0


     没有这样的  .........但是命令是执行成功的,状态码返回值为0.

    如果返回值是1-255则说明命令执行失败。

       要查看小于一百的有很多很多的


 5、根据文件名查找:-name    实例

                                -iname 不区分文件名大小写

    [root@localhost ~]# find /etc -name  default
                                /etc/default
                               /etc/sysconfig/networking/profiles/default

 6、根据文件类型来查找 -type

   在Linux中文件类型有如下几种:

f:普通文件

d:目录

c:字符

b:块

p:管道

s:套接字

l:符号链接文件

实例:

[root@localhost ~]# find /tmp -type d -exec ls -ld {} \;
drwxrwxrwt. 3 root root 4096 Dec 19 15:45 /tmp
drwxrwxrwt 2 root root 4096 Dec 19 14:36 /tmp/.ICE-unix

-nouser与-nogroup:查找没有属组和属主的文件



二、组合测试



如果给了find多个条件,那么find默认逻辑就是 -a ,

[root@localhost ~]# find /etc -nogroup -type f -ls
[root@localhost ~]# echo $?
0


1、-a就是与运算 --- 只有两个条件都满足才符合条件

-a表示与关系:

[root@localhost ~]# find /etc -nogroup -a -type f | wc -l
0

2、-o表示或运算---只要其中有一个条件满足就符合条件

-o表示或关系:

[root@localhost ~]# find /etc -nogroup -o -type f | wc -l <------
1346<-----
前面这两个命令一样,能看出分别吧


3、-not表示与条件相反的:

[root@localhost ~]# find /tmp -not -user root -a -not -group root
[root@localhost ~]# echo $?
0
没有这样的文件

  


三、根据时间戳来查找:


1、以天数为时间
-mtime修改时间

-ctime改变时间 

2、以分钟为时间

这是以分钟为单位

-amin访问

-mmin修改

-cmin改变


[root@localhost ~]# find /home -mtime -10    十天内被修改过的文件
/home
/home/po
/home/clown

-ctime,十天内没有被修改过的文件

[root@localhost ~]# find /home -ctime +10
/home/po/.bash_logout
/home/kim/.bashrc
/home/kim/.bash_history



根据权限来查找-perm

-perm [/-mode]

mode:为精确查找

/mode:只要有一位查找中的权限就符合条件

[root@localhost ~]# find /etc -perm /007 | wc -l
1777

-mode:007相当于777,-006相当与666

[root@localhost ~]# find /etc -perm -007 | wc -l
556

查找权限为700的

[root@localhost ~]# find /etc -perm 700 -ls

表示精确查找

917860    4 drwx------   7 root     root         4096 Dec  7 13:27 /etc/polkit-




  


      






find 命令  

原文:http://vclownv.blog.51cto.com/10273334/1726462

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!