Centos系统find命令使用说明
find 命令是在 Linux 和类 Unix 系统中用于在文件系统中搜索文件和目录的强大工具。下面是 find 命令的一些常用语法:
基本语法:
find [路径] [选项] [表达式]
[路径]:指定要搜索的起始路径,默认为当前目录。[选项]:用于控制搜索行为的选项。[表达式]:用于过滤文件和目录的表达式。
常用选项:
-name:按文件名匹配搜索。-iname:按文件名匹配搜索,不区分大小写。-type:按文件类型搜索,如f(普通文件)、d(目录)、l(符号链接)等。-user:按文件所有者搜索。-group:按文件所属组搜索。-size:按文件大小搜索,可使用+(大于)和-(小于)来指定大小范围。-mtime:按文件修改时间搜索,单位为天。-exec:对搜索到的文件执行指定的命令。-print:打印搜索到的文件路径,默认行为。
参数说明:
搜索所有以 .txt 结尾的文件
-name "*.txt"
搜索所有以 .txt 结尾的文件,不区分大小写
-iname "*.txt"
搜索所有普通文件
-type f
搜索所有目录
-type d
搜索所有属于指定用户的文件
-user username
搜索所有属于指定组的文件
-group groupname
搜索大小超过 10MB 的文件
-size +10M
搜索最近 7 天内修改过的文件
-mtime -7
对搜索到的文件执行指定的命令
-exec command {} +
打印搜索到的文件路径,默认行为
-print常用表达式:
-name "*.txt":搜索所有以.txt结尾的文件。-type f:搜索所有普通文件。-type d:搜索所有目录。-user username:搜索所有属于指定用户的文件。-group groupname:搜索所有属于指定组的文件。-size +10M:搜索大小超过 10MB 的文件。-mtime -7:搜索最近 7 天内修改过的文件。-exec command {} +:对搜索到的文件执行指定的命令,{}表示匹配到的文件。
组合条件:
当你需要在 find 命令中使用多个条件时,可以通过组合多个条件来实现。find 命令支持在同一条命令中使用多个条件,你可以使用 -and、-or 和 -not 来组合条件。以下是如何在 find 命令中连续使用多个条件的示例:
使用
-and组合条件:使用-and运算符可以指定多个条件都必须为真才能匹配文件。例如,要搜索文件名以.txt结尾且大小超过 1MB 的文件,可以这样做:
find /path/to/search -name "*.txt" -size +1M

使用
-or组合条件:使用-or运算符可以指定多个条件中的任意一个为真即可匹配文件。例如,要搜索文件名以.txt结尾或者大小超过 1MB 的文件,可以这样做:
find /path/to/search \( -name "*.txt" -o -size +1M \)

使用
-not排除条件:使用-not运算符可以排除符合条件的文件。例如,要搜索文件名以.txt结尾但不在/path/to/exclude目录中的文件,可以这样做:
find /path/to/search -name "*.txt" -not -path "/path/to/exclude/*"
在使用多个条件时,要确保使用括号 () 将逻辑条件组合起来,以确保正确的运算顺序。此外,要注意逻辑运算符和条件之间的空格。
-exec command {} +:对搜索到的文件执行指定的命令,{}表示匹配到的文件
# /test 目录中搜索所有以 .txt 结尾的文件,并将它们拷贝到 /opt 目录下。
find /test -name "*.txt" -exec cp {} /opt \;如下为示例代码:






