find命令用于按照指定条件来查找文件,格式为“find [查找路径] 寻找条件 操作”。
参数 | 作用 |
---|---|
-name | 匹配名称 |
-perm | 匹配权限(mode为完全匹配,-mode为包含即可) |
-user | 匹配所有者 |
-group | 匹配所有组 |
-mtime -n +n | 匹配修改内容的时间(-n指n天以内,+n指n天以 前) |
-atime -n +n | 匹配访问文件的时间(-n指n天以内,+n指n天以 前) |
-ctime -n +n | 匹配修改文件权限的时间(-n指n天以内,+n指n 天以前) |
-nouser | 匹配无所有者的文件 |
-nogroup | 匹配无所有组的文件 |
-newer f1 !f2 | 匹配比文件f1新但比f2旧的文件 |
–type b/d/c/p/l/f | 匹配文件类型(后面的字母参数依次表示块设备、目 录、字符设备、管道、链接文件、文本文件) |
size | 匹配文件的大小(+50KB为查找超过50KB的文件, 而-50KB为查找小于50KB的文件) |
-prune | 忽略某个目录 |
-exec …… {}; | 后面可跟用于进一步处理搜索结果的命令(下文会有 演示) |
1.按匹配名称查找
找到根目录下 名为 anaconda-ks.cfg 的文件
[root@Cfei ~]# find / -name anaconda-ks.cfg
/root/anaconda-ks.cfg
查找根目录文件名匹配*.c的文件
[root@Cfei ~]# find / -name *.c
/usr/lib/firmware/isci/create_fw.c
/usr/share/doc/systemd/sd-readahead.c
2.按匹配权限查找
查找权限为644的文件或目录(需完全符合)
find ./ -perm 664
查找用户/组权限为读写,其他用户权限为读(其他权限不限)的文件或目录
find ./ -perm -664
查找用户有写权限或者组用户有写权限的文件或目录
[root@Cfei ~]# find ./ -perm /220
./.bash_logout
./.bash_profile
./.cshrc
./.tcshrc
./anaconda-ks.cfg
其他格式
find ./ -perm /u+w,g+w
find ./ -perm /u=w,g=w
查找所有者权限有读权限的目录或文件
find ./ -perm -u=r
查找用户组权限有读权限的目录或文件
find ./ -perm -g=r
查找其它用户权限有读权限的目录或文件
find ./ -perm -o=r
3.按照匹配所有者查找
查找所有者为cwf的文件或目录
find ./ -user cwf
4.按照匹配所有组查找
查找组名为gname的文件或目录
find ./ -group gname
5.按照匹配修改内容的时间查找(-n指n天以内,+n指n天以 前)
查找文件更新日时在距现在时刻二天以内的文件
[root@Cfei ~]# find ./ -mtime -2
./
./.bash_history
./.ssh
./.ssh/known_hosts
./findresults
查找文件更新日时在距现在时刻二天以前的文件
[root@Cfei ~]# find ./ -mtime +2
./.bash_logout
./.bash_profile
./.cshrc
./.tcshrc
./anaconda-ks.cfg
./.ssh/id_rsa
./.ssh/id_rsa.pub
./datafile
./1
./awk
./.bashrc
./cwf
./560_file
查找文件更新日时在距现在时刻二分以内的文件
find ./ -mmin -2
查找文件更新日时在距现在时刻二分以上的文件
find ./ -mmin +2
6.按照匹配访问文件的时间查找(-n指n天以内,+n指n天以 前)
按照 匹配修改文件权限的时间(-n指n天以内,+n指n 天以前)
和上面基本 一样就不掩饰。
7.匹配无所有者的文件
find ./ -nogroup
8.匹配比文件f1新但比f2旧的文件
find -newer f1 !f2