find 命令主要作用是沿着文件层次结构向下遍历,匹配符合条件的文件,并执行相应的操作。Linux 下 find 命令提供了相当多的查找条件,功能很强大,对应的学习难度也比较大。
命令格式
find [选项][搜索路径] [表达式]
默认路径是当前目录,默认表达式为 -print。
表达式可能由下列成份组成:操作符、选项、测试表达式以及动作。
常用参数
参数 描述
-print find 命令将匹配的文件输出到标准输出
-exec find 命令对匹配的文件执行该参数所给出的 shell 命令
-name 按照文件名查找文件
-type 查找某一类型的文件
-prune 使用这一选项可以使 find 命令不在当前指定的目录中查找,如果同时使用 -depth 选项,那么 -prune 将被 find 命令忽略
-user 按照文件属主来查找文件
-group 按照文件所属的组来查找文件
-mtime -n +n 按照文件的更改时间来查找文件,-n 表示文件更改时间距现在小于 n 天,+n 表示文件更改时间距现在大于 n 天,find 命令还有 -atime 和 -ctime 选项
例一:打印当前目录下的文件目录列表,可以使用如下命令:
find . -print
例二:打印当前目录下所有以.txt 结尾的文件名,可以使用如下命令(截图只显示部分):find . -name “*.txt” -print
例三:打印当前目录下所有以.txt 或.pdf 结尾的文件名,可以使用如下命令:
find . ( -name “.pdf" -or -name ".txt” )
例四:打印当前目录下所有不以.txt 结尾的文件名,可以使用如下命令:
find . ! -name “*.txt”