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 \;
如下为示例代码: