Linux文件查找命令find(1)
1、find命令
描述:搜索文件或目录,并做相应处理
用法:find [参数选项] [路径] [表达式选项]
参数:
主要参数 |
意义 |
-name |
按照文件名称查找 |
-iname |
按照文件名称查找,不区分大小写 |
-perm |
按照文件权限查找 |
-prune |
不在当前指定目录找 |
-user |
按照文件属主来查找文件 |
-group |
按照文件属组来查找文件 |
-mtime-n/+n -mmin |
按照文件更改时间查找,- n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前(内容被修改) |
-atime/amin n |
查找系统中最后n*24小时/n分钟访问的文件(被访问) |
-ctime/cmin n |
查找系统中最后n*24小时/n分钟被改变文件状态的文件(修改状态,属性、权限、链接等) |
-depth |
从指定目录下最深层的子目录开始查找 |
-nogroup |
查找无有效属组的文件,即该文件所属的组在/etc/groups中不存在 |
-nouser |
查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在 |
-expty |
寻找文件大小为0 Byte的文件,或目录下没有任何子目录或文件的空目录;
|
-exec <执行指令> |
假设find指令的回传值为True,就执行该指令;
|
-newer file1 ! file2 |
查找更改时间比文件file1新但比文件file2旧的文件。 |
-type |
按照文件类型查找: b:块设备文件;c:字符设备文件;d:目录; p:管道文件;l:符号链接文件;f:普通文件 |
-size n |
查找长度为n块的文件, |
-fstype |
查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息 |
-mount |
查找文件时不跨越文件系统挂载点 |
-follow |
如果find命令遇到符号链接文件,就跟踪至链接所指向的文件 |
-cpio |
对匹配的文件使用cpio命令,将这些文件备份到磁带设备中 |
注:
atime:访问时间(access time),指的是文件最后被读取的时间,可以使用touch命令更改为当前时间;
ctime:变更时间(change time),指的是文件本身最后被变更的时间,变更动作可以使chmod、chgrp、mv等等;
mtime:修改时间(modify time),指的是文件内容最后被修改的时间,修改动作可以使echo重定向、vi等等。
Eg:
(1)查找/目录下,名字为ping的文件
[root@test ~]#find / -name ping
(2)查找3天内被修改过的文件
[root@test ~]#find -mtime -3
(3)查找3天前被修改过的文件
[root@test ~]#find -mtime +3
(4)查找3天前的当天被修改过的文件
[root@test ~]#find -mtime 3
(5)查找/root/shell目录下,权限为777的文件
[root@test ~]#find /root/shell -perm 777
(6)查找当前目录下,已.sh结尾的文件
[root@test ~]# find . -type f -name "*.sh"
(7)查找当前目录下大于10MB的文档
[root@test ~]# find . -size +10M
(8)查根目录下大于1MB的文件(-a 并且;-o或者)
[root@test ~]# find / -size +1M -a -type f
(9)查找当前目录下所有空文件
[root@test ~]# find . -empty
(10)查找根目录下3天前被修改的文件,并删除
[root@test ~]# find / -mtime +3 -exec rm { } \;
个人公众号: