Linux find篇

转载连接:https://blog.csdn.net/weixin_41476978/article/details/88076058

一:find命令概述

linux find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名

如果使用命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示

1 find  path  -option   [   -print  ]  [   -exec  -ok   command   ]  {}   \;

1、处理动作

-print  :打印到屏幕
-ls     :查找到的文件进行ls
-delete :删除查找到的文件
-ok  command {}\;   对查找的文件执行由command指定的命令,交互式
-exec  command{}\;   同上,非交互式
{} : 代表前面的find找到的 文件名称本身
例如:
find ./ -type f -exec cp {}.bak \;  将查找到的文件都复制出一个.bak文件

2、根据属主 ,属组查找

-user username  :查找属主是xx的文件
-group group   :查找属组的xx文件
-uid  useruid    :查找uid号的文件
-gid  groupid    :  查找gid号的文件
-nouser           :  查找没有属主的文件,即文件存在但是user已被删除
-nogroup         :   查找没有属组的文件

3、根据文件类型来查找

-type  f  :普通文件
-type  d  :目录文件
-type  l  :符号链接文件
-type  s  :套接字文件
-type  b  :块设备文件
-type  c  :字符设备文件
-type  p  :管道文件

4、根据大小查找

-size +10M  :  大于10m的文件
-size +10K  :   大于10k的文件
-size +1G    :   大于1G的文件
-size -1G     :   小于1G的文件

5、根据时间查找

一天为单位
            -atime   :   访问时间
            -mtime   :   修改时间
            -ctime   :   改变时间
以分钟为单位
            -amin    :   访问时间
            -mmin    :   修改时间  
            -cmin    :   改变时间

atime :(access  time)显示的是文件中的数据最后别访问的时间,比如系统的进程直接使用或通过一些命令和脚本间接使用。(执行一些可执行文件或脚本)

mtime :  (modify  time)显示的是文件内容被修改的最后时间,比如用vi编辑器时就会被修改。(也就是Block的内容)

扫描二维码关注公众号,回复: 7150619 查看本文章

ctime  :(change  time)显示的是文件的权限,拥有者,所属的组,连接数发生改变的时间,当然当内容改变时也会随之改变(即inode内容发生改变和Block内容发生改变时)

6、权限查找

-perm +mode:
    -perm +600 :属主属组其他权限,只要有一个匹配就当成功;600带边三个对象,6属主,CentOS7上使用   /600
    -perm -600  :每个对象都必须同时拥有其指定的权限,三个对象同时成立,如:-003表示其他用户必须有写与执行权限

7、find查找后的动作传递模式

默认:查找到指定类型的文件时进行一次性传递
xargs :xargs命令即让find查找的传递模式为 查找一个传递一个到动作上,删除较多碎文件    很好用

例如:find -type f | xargs command;

二、查找名称查找文件的基本查找命令

1、使用当前目录中的名称查找文件

在当前工作目录中查找名为test.c的所有文件

1 find test.c

2、在主目录下查找文件

find /home/  -name  test.c

3、使用名称和忽略案例查找文件

找到名称为test的所有文件,并在/home目录中同时包含大写和小写字母

find  /home  -iname   test

 4、使用名称查找目录

find  /  -type  d  -name  test

5、查找目录中的所有PHP文件

find   ./  -name *.php

6、查找并删除单个文件

find  -type  f  -name   test.php   -exec  rm   -f{}\;

三、根据他们的权限查找文件

1、查找权限为777的文件

find  ./   -type   f   -perm  777  -print

四、基于所有者和组的搜搜文件

1、查找基于用户的单个文件

查找所有者为root的test.c的文件

find   -type    f   -user  root  -name  test.c

2、查找root组的所有文件

find  ./  -group root

五、根据日期和时间查找文件和目录

1、查找文件50天前修改的文件

find  -mtime  -50  -type  f

2、查找最近50天后访问的文件

find  -atime  +50  -type  f

3、查找所有被修改超过50天小于100天的文件

find  -mtime  +50  -100   -type   f

4、在过去一小时内修改的文件

find   -mmin  -60  -type   f

5、在过去一小时内更改的文件

find  -cmin   -60    -type  f

六、根据大小查找文件和目录

1、查找50MB的文件

find  ./  -size   50M

2、找到大小在50-100之间的文件

find  /   -size  +50M  -size   -100M

3、找到所有100M的文件,并使用一个命令删除它们

find   /  -size    100M  -exec   rm   -f   {}\;

4、查找超过10M的mp3文件,并使用一个命令删除它们

find   /   -type   f   -size   +10M   -name   "*.mp3"  -exec  rm  -f{};

猜你喜欢

转载自www.cnblogs.com/cheneyboon/p/11439453.html