描述:从指定的起始目录开始,递归的查找其各个子目录,查找知足条件的文件并对之采起相关的操做。shell
用法:find 起始目录 查找条件 执行操做ui
查找条件:code
-name filename 查找名为filename的文件递归
-iname 不区分大小写进程
-perm 按执行权限查找io
-user 按文件属主来查找test
-group 按组来查找效率
-uid n 查找用户UID为n的全部文件;file
-gid n 查找组GID为n的全部文件;搜索
-empty 查找空文件
-mtime -n +n n 按文件更改时间来查找文件,-n指n天之内,+n指n天之前,n指n天之前的一天以内
-atime -n +n n 按文件访问时间来查找文件
-ctime -n +n n 按文件建立时间来查找文件
-amin n 查找n分钟前被访问的文件;注意:-n表示文件被访问时间距如今n分钟之内,+n表示文件被访问时间距如今n分钟之前;
-cmin n 查找n分钟前文件属性被修改
-mmin n 查找n分钟前文件内容被修改
-nogrounp 查无有效属组的文件,即在/etc/group中不存在
-nouser 查无有效属组的文件,即在/etc/passwd中不存在
-newer f1 !f2 查更改时间比f1新但比f2旧的文件
-type b/d/c/p/l/f 查块设备、目录、字符设备、管道、符号连接、普通文件
-size n[c] 查长度为n块[或n字节]的文件
-depth 使查完本目录后再进入子目录
-fstype 查找位于某一文件系统中的文件,这些文件系统类型一般在/etc/fstab中
-mount 查文件时不跨越文件系统mount点
-follow 若是遇到符号连接文件,就跟踪连接所指的文件
-cpio 对匹配的文件使用cpio命令,将他们备份到磁带当中
-prune 忽略某个目录
-maxdepth 容许制定find搜索深刻到目录树的哪一级别
-mindepth 容许制定find搜索深刻到目录树的哪一级别
执行操做:
-print: find命令将匹配的文件输出到标准输出
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令形 式为‘command' { } \;注意{ }和\;之间的空格。
-ok: 和-exec相同,在操做前要询问用户
逻辑运算符:
-a (and)
-o (or)
! (not)
示例:1. 查找/home(包含子目录)目录中,在24小时内被访问过的文件。
[root@share19 ~]# find /home -atime 0
2.查找/home(包含子目录)目录中,拥有者和用户组不存在的文件,并执行删除操做。
[root@share19 ~]# find /home -nouser -a -nogroup -exec rm -rf {} \;
[root@share19 ~]# find /home -nouser -a -nogroup -ok rm -rf{} \;
3.查找test目录中大小为零的文件并把它们移动到/tmp/zerobyte目录中。
[root@share19 ~]# find /test -type f -size 0 -exec mv {} /tmp/zerobyte \;
4.查找当前目录中权限为777的文件,并列出详细列表。
[root@share19 ~]# find . -type f -perm 777 -ls
5.xargs命令对匹配结果分批处理并只产生一个进程
比较一下两个命令的执行效率
[root@share19 ~]# find / -type f -exec ls -l {} \;
[root@share19 ~]# find / -type f |xargs ls -l