shell find 的一些参数用法示例
1、根据文件名查找 #具体文件名 find/root-nameindex.html #模糊文件名查找 #查找以“.html”结尾的文件 find/root-name"*.html" #查找以“index”开头的文件 find/root-name"index*" 2、根据文件类型查找 #b/d/c/p/l/f 分别是块设备、目录、字符设备、管道、符号链接、普通文件 #查找文件(排除块设备、目录、字符设备、管道、符号链接) find/root-typef #查找以“index”开头的文件(排除块设备、目录、字符设备、管道、符号链接) find/root-name"index*"-typef 3、根据文件大小查询 #查找大于10M的文件 find/root-size+10M #查找小于10M的文件 find/root-size-10M #查找大小在10M到20M之间的文件 find/root-size+10M-a-size-20M 4、根据执行权限查找 #查找权限为777的文件 find/root-perm777 5、根据文件所属状态查找 #查找文件所有者是mysql的文件 find/root-usermysql #查找文件所有者是mysql的目录 find/root-usermysql-a-typed #查找文件说有组是mysql的文件 find/root-groupmysql #查找无效属主的文件 find/-nouser #查找无效属组的文件 find/-nogroup 6、根据时间查找 #atime:access time 文件被读取或者执行的时间; #ctime:change time 文件状态改变时间; #mtime:modify time 文件内容被修改的时间; #mmin、amin、cmin #查找30天以前的log文件 find/data/-mtime+30-name"*.log" #查找30天以内的log文件 find/data/-mtime-30-name"*.log" #查找第30天的log文件 find/data/-mtime30-name"*.log" #查找30分钟以前修改的log文件; find/data/-mmin+30-name"*.log" #查找30分钟以内被访问的log文件 find/data/-amin-30-name"*.log" #查找第30分钟改变的log文件 find/data/-cmin30-name"*.log"
7、根据文件新旧查找 #查找比1.txt新的文件 find.-newer"1.txt"-typef #查找比1.txt旧的文件 find.!-newer"1.txt"-typef #查找比1.txt新的比2.txt旧的文件 find.-newer"aa.txt"-a!-newer"bb.txt"-typef 8、根据目录级别查找 #处理目录以前首先处理目录下的子内容 find/root-depth #不查找顶级目录 find/root-mindepth1 #只查找到2级子目录 find/root-maxdepth2 9、查找位于某一类型文件系统中的文件 #找存在于ext3文件系统的文件 find/-fstypeext3 10、查文件时不跨越文件系统mount点 #只在根的mount点查找1.txt的文件 find/-mount-name"1.txt" 11、在/home/bel目录下查找不在/home/bel/test1子目录之内的所有文件 find.-path"./test1"-prune-o-print 12、-exec、-ok参数 #查询当天修改过的文件并显示 find.-mtime-1-typef-execls-l{}; #查询当天修改过的文件并询问是否要显示 find.-mtime-1-typef-okls-l{}; #查找/data目录以.log结尾,30天以前的文件,大小大于10M并复制到/tmp目录 find/data/-name"*.log"-typef-mtime+30-size+10M-execcp{}/tmp/; #查找/data目录以.log结尾,30天以前的文件并删除 find/data/-name"*.log"-typef-mtime+30-delete find/data/-name"*.log"-typef-mtime+30-execrm-rf{}; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |