find帮助参数
-amin N: 最后一次访问文件的时间(以分钟计)与 N 相匹配。
-anewer FILE: 最后访问文件时间比指定文件 FILE 新的文件。
-atime N: 最后一次访问文件的时间(以天为单位)与 N 相匹配。
-cmin N: 最后一次更改文件的时间(以分钟计)与 N 相匹配。
-cnewer FILE: 最后更改文件时间比指定文件 FILE 新的文件。
-ctime N: 最后一次更改文件的时间(以天为单位)与 N 相匹配。
-empty: 文件为空。
-false: 总是返回 false。
-fstype TYPE: 文件的文件系统类型与给定的类型 TYPE 匹配。
-gid N: 文件的组 ID 与给定的 ID N 匹配。
-group NAME: 文件所属的组名称与给定的名称 NAME 匹配。
-ilname PATTERN: 忽略大小写,文件链接的名称匹配给定的 shell 模式 PATTERN。
-iname PATTERN: 忽略大小写,文件名称匹配给定的 shell 模式 PATTERN。
-inum N: 文件的 inode 号与给定的编号 N 匹配。
-iwholename PATTERN: 忽略大小写,整个文件路径匹配给定的 shell 模式 PATTERN。
-iregex PATTERN: 忽略大小写,文件路径匹配给定的正则表达式 PATTERN。
-links N: 文件的硬链接数与给定的数量 N 匹配。
-lname PATTERN: 文件链接的名称匹配给定的 shell 模式 PATTERN。
-mmin N: 文件的修改时间(以分钟计)与 N 相匹配。
-mtime N: 文件的修改时间(以天为单位)与 N 相匹配。
-name PATTERN: 文件名称匹配给定的 shell 模式 PATTERN。
-newer FILE: 文件的修改时间比指定文件 FILE 新的文件。
-nouser: 无效用户拥有该文件。
-nogroup: 无效组拥有该文件。
-path PATTERN: 文件路径匹配给定的 shell 模式 PATTERN。
-perm [-/]MODE: 文件权限与给定的权限 MODE 匹配。
-regex PATTERN: 文件路径匹配给定的正则表达式 PATTERN。
-readable: 文件可读。
-writable: 文件可写。
-executable: 文件可执行。
-wholename PATTERN: 整个文件路径匹配给定的 shell 模式 PATTERN。
-size N[bcwkMG]: 文件大小与给定的大小 N 匹配,可选择指定单位。
-true: 总是返回 true。
-type [bcdpflsD]: 文件类型与给定的类型匹配。
-uid N: 文件的用户 ID 与给定的 ID N 匹配。
-used N: 文件上次访问时间与 N 相匹配。
-user NAME: 文件的所有者名称与给定的名称 NAME 匹配。
-xtype [bcdpfls]: 与 -type 相同,但是不跟随符号链接。
-context CONTEXT: 文件安全上下文与给定的安全上下文 CONTEXT 匹配。
基本语法
find [路径...] [表达式]
路径:指定搜索的目录。如果未指定,默认为当前目录。
表达式:用于过滤搜索结果的条件,包括操作符、选项、测试和动作。
路径和表达式选项:
.:当前目录。
/path/to/dir:指定的目录路径。
操作符表达式
-and 或 -a:逻辑与(默认)。
-or 或 -o:逻辑或。
! 或 -not:逻辑非。
( 和 ):分组表达式。
测试
匹配文件名区分大小写
find . -name "filename.txt"
匹配文件名不区分大小写
find . -iname "filename.txt
按文件类型搜索。常见类型包括:
f:普通文件
d:目录
l:符号链接
`find . -type f`
匹配文件权限
find . -perm 644
按文件`所有者`搜索。
find . -user username
按文件`所属组`搜索
find . -group groupname
按`文件大小`搜索。单位可以是 b (字节),c (字符),w (字),k (千字节),M (兆字节),G (吉字节)。
find . -size +10M
按文件修改时间搜索,N 表示天数,+N 表示 N 天前,-N 表示 N 天内。
find . -mtime -7
按文件访问时间搜索。使用方法同 mtime
find . -atime -7
按文件状态改变时间搜索。使用方法同-mtime。
find . -ctime -7
打印匹配的文件名(默认)
find . -name "filename.txt" -print
对每个匹配的文件执行命令,{} 代表当前文件,-exec COMMAND {} \;
find . -name "*.txt" -exec cat {} \;
对所有匹配的文件一次性执行命令。-exec COMMAND {} +:
find . -name "*.txt" -exec ls -l {} +
删除匹配的文件(小心使用)-delete
find . -name "*.tmp" -delete
以ls格式列出匹配的文件
find . -name "*.txt" -ls
跳过某个目录-prune
find . -path "./dir_to_skip" -prune -o -name "*.txt" -print
查找并列出所有 .txt 文件:
find . -name "*.txt" -print
查找并删除所有临时文件:
find . -name "*.tmp" -delete
查找所有大于 100MB 的文件:
find . -size +100M -print
查找最近 7 天内修改的文件并执行 ls -l:
find . -mtime -7 -exec ls -l {} \;
跳过某个目录进行搜索:
find . -path "./dir_to_skip" -prune -o -name "*.log" -print
标签:文件,匹配,name,PATTERN,命令,给定,find
From: https://www.cnblogs.com/uutow/p/18199588