ZetCode

Linux find 命令

最后修改于 2025 年 2 月 25 日

Linux 中的 find 命令是一个强大的工具,可以根据各种条件(例如名称、类型、大小和修改时间)搜索文件和目录。它广泛用于查找文件、执行批量操作和自动化任务。本教程通过实际示例介绍了 find 的基本和高级用法。

find 支持广泛的选项和表达式,使其成为系统管理员和开发人员的多功能工具。

基本文件搜索

此示例演示了如何在目录中按名称搜索文件。

basic_search.sh
find /path/to/dir -name "filename.txt"

-name 选项用于搜索指定名称的文件。

按文件类型搜索

此示例显示了如何搜索特定类型的文件,例如目录或常规文件。

search_by_type.sh
# Search for directories
find /path/to/dir -type d

# Search for regular files
find /path/to/dir -type f

-type 选项按文件类型过滤结果(d 表示目录,f 表示文件)。

按文件大小搜索

此示例演示了如何搜索大于指定大小的文件。

search_by_size.sh
# Search for files larger than 10MB
find /path/to/dir -size +10M

-size 选项按大小过滤文件。使用 + 表示大于,使用 - 表示小于。

按修改时间搜索

此示例显示了如何搜索最近 7 天内修改过的文件。

search_by_time.sh
find /path/to/dir -mtime -7

-mtime 选项按修改时间过滤文件。使用 -7 表示最近 7 天内修改过的文件。

对找到的文件执行命令

此示例演示了如何对找到的每个文件执行命令。

execute_commands.sh
find /path/to/dir -name "*.log" -exec rm {} \;

-exec 选项在找到的每个文件上运行指定的命令(本例中为 rm)。{} 占位符代表当前文件。

按权限搜索

此示例显示了如何搜索具有特定权限的文件。

search_by_permissions.sh
find /path/to/dir -perm 644

-perm 选项按文件权限设置过滤文件。

高级:组合条件

此示例演示了如何在单个 find 命令中组合多个条件。

combine_conditions.sh
find /path/to/dir -name "*.txt" -size +1M -mtime -30

此命令搜索大于 1MB 且在最近 30 天内修改过的 .txt 文件。

find 的最佳实践

来源

GNU find 手册

在本文中,我们探索了使用 find 命令进行文件和目录搜索的各种示例,包括按名称、类型、大小、修改时间和权限搜索。

作者

我的名字是 Jan Bodnar,我是一名充满热情的程序员,拥有丰富的编程经验。自 2007 年以来,我一直在撰写编程文章。迄今为止,我已撰写了 1,400 多篇文章和 8 本电子书。我在教学编程方面拥有十多年的经验。

列出所有 Linux 教程