find
是一个在 Linux 中非常强大的命令,用于在目录树中搜索文件
-name
:根据文件名搜索。可以使用通配符 *
进行模糊匹配。例如,find . -name "*.txt"
会在当前目录及其子目录中搜索所有以 .txt
结尾的文件。
-type
:根据文件类型搜索。可选值有 f
(普通文件)、d
(目录)、l
(符号链接)等。例如,find . -type d
会在当前目录及其子目录中搜索所有目录。
-mtime
:根据文件修改时间搜索。可选值有 0
(今天)、1
(1天前)、-1
(1天后)等。例如,find . -mtime 0
会在当前目录及其子目录中搜索所有今天修改过的文件。
-size
:根据文件大小搜索。可以使用单位 k
(KB)、M
(MB)、G
(GB)等。例如,find . -size +1M
会在当前目录及其子目录中搜索所有大于 1MB 的文件。
-exec
:对搜索到的文件执行指定的命令。例如,find . -name "*.txt" -exec rm {} \;
会删除当前目录及其子目录中所有以 .txt
结尾的文件。
-print
:打印搜索到的文件路径。这是 find
命令的默认行为,通常不需要显式指定。
-ls
:对搜索到的文件执行 ls
命令,显示文件详细信息。例如,find . -name "*.txt" -ls
会列出当前目录及其子目录中所有以 .txt
结尾的文件及其详细信息。
这些参数可以组合使用,例如:find . -type f -name "*.txt" -mtime 0 -exec rm {} \;
会在当前目录及其子目录中搜索所有今天修改过的文本文件,并删除它们。