linux查找文件



find


file path expression [action]  查找文件和目录


前提条件


要对被查找的目录及其所有子目录有读权限才能查找。


查找选项:通过文件属性来查找


-name 按文件名


-user 按用户(文件属主)


-size 按大小


-mtime 按最后一次修改时间


-atime 按最后一次访问时间


-type 按文件类型  f:file d:directory


-perm 按权限


find / -name b*   //找根目录下面名字以b开头的所有文件


find . -mtime 10 -print   //查找当前目录下最后一次修改时间距离今天之前10天的那一天修改的文件和目录,并显示出来


find /etc -user 0 -size +400 -print  //查找根目录下的/etc下的子目录中由用户id=0,创建的文件大小要大于200k的,并把它显出来


find ~ -perm 777 > ~/holes   //在用户住目录下查找权限为777的,即拥有者,同组的,和其他人的的权限都具有读写权限的文件和子目录,并且将查找结果都放在用户主目录下的/holes文件中


find /export/home -type f -atime +365 -exec rm {}\;   //查找/export/home下的文件,最后一次访问时间是距离今天是大于365天的文件,再将找到的文件执行一个进程,并删除这些文件。\;代表转义,即就代表分号本身。

 

示例


查找根目录下以b开头的文件


find1.png


查找根目录下面修改时间距离今天10天的


find2.png


查找根目录下的/etc下的子目录中由用户id=0,创建的文件大小要大于200k的


find3.png


查找用户主目录下权限为644的文件,并且把它放到用户主目录下的wj1.txt


find4.png


查看wj1.txt,用户住目录下权限为644的,其中有很多是系统的隐藏文件,还有我们自己建立的Wj.txt


find5.png



Locate


速度比find快


locate [-d <数据库文件>][--help][--version][keywords]


locate指令用于查找符合条件的文件,它会去保存文件与目录名称的数据库内查找合乎范本样式条件的文件或目录。 


-d<数据库文件>或--database=<数据库文件> :设置locate指令使用的数据库。


locate指令预设的数据库位于/var/lib/slocate目录里,文件slocate.db,您可使用这个参数另行指定。 


--help 在线帮助。 


--version  显示版本信息。


速度快很多,它是通过inode,文件索引来找,它会把文件索引维护在一个数据库里面,它在数据库去找;比较麻烦的是需要更新数据updatedb。


示例


在我的当前目录下找wj开头的


find6.png


查看帮助文档


find7.png


查看当前以wj开头的文件个数


find8.png


查看当前以bj开头的文件个数


find9.png



【本文由麦子学院独家原创,转载请注明出处并保留原文链接】

logo
© 2012-2016 www.maiziedu.com
蜀ICP备13014270号-4 Version 5.0.0 release20160127

有一位课程导师想与你聊聊

客服热线 400-862-8862

回到顶部