2012年(28)
分类: LINUX
2012-05-16 16:57:21
Linux find 命令
find是Linux下一个查找命令,它支持正则表达式。通常如果在运行一个消耗资源比较大的find命令,可以将起放在后台运行。
-name以文件名来查找文件。
find . -type f -name "*.cfg" -exec ls -l {} \;
有文件名匹配的话,必须要加 “ “,否则就会报错。
find /etc/ -name passwd -exec grep "alan" {} \;
查找passwd中含有alan的行。
-atime:文件访问时间(例如访问文件)
-ctime:文件状态的改变时间(例如权限的改变)
-mtime:文件内容改变的时间。
find /var -mtime -5 -ok rm {} \;
查找/var目录中5天之内进行修改过的文件,-ok更为安全的模式。
-5代表5天之内。+5代表5天之前。5代表以现在时间为基准,5天前的那一天(5-6)。
-print 将find命令查找出来的内容打印到标准输出上。
find . –print
查找当前目录下所有文件和文件夹并把输出打印到终端上。
-perm以权限进行查找。
find . -type f -perm 777
查找当前目录下权限是777的文件。
-size以大小进行查找。大小:c,k,M,G。可以用ls –lh,du –sh filename查看文件大小。
find . -type f -size 0
查找当前目录下大小为0 的文件。
find . -type f -size +2M
查找当前目录下大于2M的文件。
-group以所属组方式进行查找。-user以所有者方式进行查找。
find . -group root
查找当前目录下组权限是root的文件和文件夹。
-exec,-ok 是将find查找到的内容一次性全部给-exec或者-ok,这样会出现溢出错误。在有些情况下,exec会产生多个进程去处理相应的内容,会导致系统性能下降,效率不高。
xargs命令:每次只获取一部分内容而不是全部,只有一个进程来处理。
find . -perm 777 -print | xargs chmod –x
查找当前目录下是777权限的目录和文件,然后删除执行权限。
-nouser以无所有者方式进行查找。-nogroup以无所属组方式进行查找。(通常用来查找孤儿文件。)
find . –nouser
查找当前目录下的孤儿文件。
find . -newer jsp.jsp
查找比jsp.jsp更新时间新的文件。
-depth先匹配所有文件,再在子目录中查找。
find . -name httpd.conf –depth
在当前目录下查找httpd.conf文件。