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的内容)
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{};