find
find 是一个在 Linux 系统中用于查找文件和目录的强大工具。它可以根据指定的条件,在文件系统中搜索匹配的文件或目录,并输出结果。以下是 find 命令的基本用法和常见选项
基本语法:
bashCopy code
find [path...] [expression]
path: 要开始搜索的路径。如果省略路径,则默认为当前目录。expression: 指定搜索的条件和操作。
常见选项:
-name pattern: 根据文件名匹配文件。-type type: 根据文件类型匹配文件,如f表示普通文件,d表示目录。-size [+|-]size: 根据文件大小匹配文件,+表示大于,-表示小于。-exec command {} ;: 对搜索到的文件执行指定的命令。-print: 默认操作,打印匹配的文件名。
实例用法
-
根据文件名查找:
查找当前目录及其子目录中名为
example.txt的文件:find . -name "example.txt"
-
根据文件类型查找:
查找当前目录及其子目录中所有目录:
find . -type d查找当前目录及其子目录中所有普通文件:
find . -type f -
根据文件大小查找:
查找当前目录及其子目录中大小大于 1MB 的文件:
find . -type f -size +1M查找当前目录及其子目录中大小小于 100KB 的文件:
find . -type f -size -100k -
执行操作:
查找当前目录及其子目录中所有
.txt文件,并删除它们:执行操作?操作什么
find . -type f -name "*.txt" -exec rm {} ;查找当前目录及其子目录中所有
.bak文件,并移动到/backup目录下:find . -type f -name "*.bak" -exec mv {} /backup/ ; -
组合多个条件:
查找当前目录及其子目录中大小在 1MB 到 10MB 之间的
.jpg文件:find . -type f -name "*.jpg" -size +1M -size -10M -
查找最近修改的文件:
查找当前目录及其子目录中最近 7 天内修改过的文件:
find . -type f -mtime -7查找当前目录及其子目录中最近 1 小时内访问过的文件:
find . -type f -amin -60 -
控制查找目录层级、
-maxdepth选项来限制搜索的深度find . -maxdepth 1 -type f -name "*.txt"