find path -option [-print] [-exec -ok command] {} ;find命令的参数:pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。-print: find命令将匹配的文件输出到标准输出。-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为"command" { } ;,注意{ }和;之间的空格。-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。#-print 将查找到的文件输出到标准输出#-exec command {} ;—–将查到的文件执行command操作,{} 和 ;之间有空格#-ok 和-exec相同,只不过在操作前要询用户1、根据文件名或正则表达式匹配搜索选项-name的参数指定文件名所必须匹配的字符串。例:匹配所有以.txt结尾的文件名$find /root/ -name "*.txt" -print选项-iname,该选项的作用和-name类似,不过匹配的时候忽略名字的大小写。匹配多个条件,可以使用OR条件操作$find . /root/ ( -name "*.txt" -o -name "*.pdf" ) -print选项-path的参数可以使用通配符来匹配文件路径或文件。$find . -path "*include/apu*" ./httpd-2.2.22/srclib/apr-util/include/apu_version.h./httpd-2.2.22/srclib/apr-util/include/apu.hw./httpd-2.2.22/srclib/apr-util/include/apu_errno.h./httpd-2.2.22/srclib/apr-util/include/apu.hnw选项-regex的参数和-path类似,不过-regex是基于正则表达式来匹配文件路径。下面命令匹配.py或.sh文件$find . -regex ".*(.py|.ssh)$"./.ssh./httpd-2.2.22/srclib/apr/build/gen-build.py2、否定参数find也可以使用"!"否定参数的含义。例如:匹配所有不是以.txt结尾的文件名$find . ! -name "*.txt"3、基于目录的深度搜索使用-maxdepth和-mindepth参数来限制find命令遍历目录的深度。例:列出当前目录下的所有普通文件。$find . -maxdepth 1 -type f-maxdepth和-mindepth应当作为find的第三个参数出现,如果作为第四个或之后的参数,则会影响find的效率。4、根据文件的类型搜索使用-type对文件搜索进行过滤,以下是type参数对应文件的类型普通文件f、符号文件 l、目录 d、字符设备 c、块设备 b、套接字 s、Fifo p。例:列出所有目录$find . -type d -print5、根据文件时间进行搜索系统每个文件有三种时间戳,如下所示:访问时间(-atime):用户最近一次访问时间修改时间(-mtime):文件内容最后一次修改时间。变化时间(-ctime):文件元数据(例如权限或所有权)最后一次改变时间打印出最近7天有过访问的所有文件$find . type f -atime -7 print打印出访问时间超过7分钟的所有文件$find . type f -admin -7 print6、基于文件大小的搜索$find . -type f -size +20k#大于20KB的文件$find . -type f -size -20k#小于20KB的文件$find . -type f -size 20k#等于20KB的文件7、删除匹配的文件-delete可以删除find查找到的.swp文件$find . -type f -name "*.swp" -delete删除当前目录下的所有的.swp文件8、基于文件权限和所有权的匹配例:打印出权限为644的文件$find . -type f -perm 644 -print查找没有执行权限的PHP文件$find . -type f -name "*.php" ! -perm 644 -print打印出用户slynux所拥有的文件:$find . -type f -user slynux -print9、结合find执行命令或动作借助选项-exec与其他命令结合。示例:#find . -type f -user mysql -exec chown root {} ;在当前目录下修改属于用户mysql的文件为属于root用户。#find . -type f -mtime +10 -name "*.txt" -exec cp {} OLD ;将10天前的.txt文件复制到OLD目录下10、find跳过特定的目录打印出不包过在.svn的目录的所有文件的名称#find . ( -name ".svn" -prune ) -o ( -type f -print)Linux sed 命令详解Fedora 18安装Google输入法和云拼音相关资讯 Linux find命令 Linux命令详解 find命令详解
- Linux基础知识之find命令详解 (08月02日)
- Linux find命令的用法实践 (08/16/2015 11:10:03)
- Linux find命令详述 (02/23/2015 11:30:06)
| - Linux的find命令实例详解和mtime (05月21日)
- Linux find 命令用法总结 (04/30/2015 09:23:48)
- Linux 命令详解 chpasswd 批量修改 (02/13/2015 20:15:05)
|
本文评论 查看全部评论 (0)