您的位置:首页 > 运维架构 > Linux

Linux find命令详解和实例说明

2014-05-11 14:05 671 查看
find:搜索文件或目录

例:find . -name '*.jsp' -mtime -90 //查找当前目录下90天之内修改过的以jsp后缀的文件

-name: 根据名字查找,支持glob通配符* ? []等

-iname: 忽略名称大小写

-empty: 查找所有空文件或者空目录,连接空文件除外

-user USERNAME:查找某个属主的文件

-group GRPNAME:查找某个属组的文件

-uid:根据属主ID查找相关文件

-gid:根据属组ID查找相关文件

-nouser: 查找没有属主的文件

-nogroup:查找没有属组的文件

-exec :对找到的档案执行命令(固定格式:'-exec 命令 {} \;')不询问。-ok执行前询问确认。格式'-ok 命令 {} \;' 其中‘{}’表示find查询的结果,'\'为转义字符,表示让一些命令或符合使用本身含义

例: find . -size +10M -exec ls -lh {} \; //查找当前目录下大小超过10M的,并显示详细信息

组合查找条件

-a:与

-o:或

-not或!:非

例:find /etc -name ‘init*’ -a -user root //查找/etc目录下,文件名以init开头,并且文件所有者为root的文件

-type 根据文件类型查找。f:二进制文件 l:软连接文件 d:目录

-size +[-]UNIT 表示大于或小于多少的文件

提示:检索文件大小时,以linux的black数据块大小换算,这样查询更快,更精确。例如:centos5.5的black大小为512字节,查找一个大于100M的文件命令为:find /etc -size +204800 //查找/etc下大于100M的文件

例:ls -ldh `find /etc/ -size +2k` //查看/etc目录下大于2k的文件

ls -ldh `find /etc/ -size -2k` //查看/etc目录下小于2k的文件

find /etc -size +163840 -a -size -204800 //查找/etc下大于80M小于100M的文件

根据时间戳查找:

-amin [+/-]n:n分钟前访问的文件

-mmin [+/-]n: n分钟前修改过的文件

-cmin [+/-]n: n分钟前改变过的文件

-atime: [+/-]n n天内访问过的文件

-mtime: [+/-]n n天内修改过的文件

-ctime: [+/-]n n天内改变过的文件

其中:c 为change 改变,表示文件属性被修改过,所有者,所属组,权限等;a为access 访问,表示文件被访问过; m为modify 修改,表示文件内容被修改过 -:表示在指定值之内;+:表示超过指定值

-inum:根据文件i节点(inode值)查找 (ls -i file即可显示文件inode)

例:find /data -name ‘*.log’ -a -inum 767301 -exec rm -rf {} \; //查找/data目录下以.log结尾并且inode值为7673016的文件,之后强制删除





根据权限查找文件:

-perm node :精确查找指定权限的文件 例:find /etc -perm 755 //在etc目录下查找权限为755的文件

-perm -node:分别在对应的权限范围内的文件(符合条件的为与关系) 例:find /etc -perm -755 //查找etc目录下属主、属组、其他权限分别大于755(即权限对应位是否存在的包含关系)的文件

例:find /data -perm -002 //查找data目录下其他用户可写的文件

-perm /node 查找分别对应的权限位和条件为或关系的文件

类似功能命令:locate 寻找文件或目录 (是在linux的系统目录文件的数据库中查找,结果会有延迟,若要及时可手动执行updatedb更新系统目录文件数据库)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: