> 文件与目录管理 > find

精通 find 命令

这是关于 `find` 命令的指南,该命令用于在 Linux 文件系统中搜索文件和目录。通过组合各种条件和操作,您可以有效地找到所需的文件。

主要选项

尝试通过组合 `find` 命令的各种选项来搜索和处理文件系统中的文件。

1. 基本搜索

2. 时间条件

3. 大小和权限条件

4. 操作

生成的命令:

请尝试组合命令。

描述:

`find` 执行命令。

通过组合这些选项,您可以与 AI 一起虚拟地执行命令。

逻辑运算符

`find` 命令提供逻辑运算符,可以通过组合多个条件来执行更精确的搜索。

主要逻辑运算符 用于组合多个条件的运算符。默认情况下应用 AND (`-a`)。
运算符 说明 示例
-and(或省略) 当左侧和右侧条件都为真时 `find . -name "*.txt" -and -size +1M`
-or 当左侧或右侧条件中至少有一个为真时 `find . -name "*.log" -or -name "*.tmp"`
-not(或 !) 当条件为假时 `find . -not -name "*.txt"`
( ) 条件分组(需要转义) `find . \( -name "*.txt" -or -name "*.doc" \)`

运算符优先级

`find` 命令的运算符通常是先评估表达式(Expression),后评估操作(Action)。此外,在条件内部,可以使用括号 (`()`) 来显式指定优先级。使用括号时,必须用反斜杠 (`\`) 进行转义,因为它们在 shell 中具有特殊含义。

使用示例

通过 `find` 命令的实用使用示例,练习文件搜索和管理。

在当前目录中查找所有扩展名为 '.log' 的文件

find . -name "*.log"

在当前位置搜索所有以 `.log` 结尾的文件。

查找大于 50MB 的文件

find /var -size +50M

在系统的 `/var` 目录下搜索所有大小超过 50MB 的文件。

查找 7 天内修改过的 'conf' 文件

find . -name "*.conf" -mtime -7

在当前目录中查找在 7 天内修改过的 `.conf` 文件。

查找所有访问权限为 777 的目录

find / -type d -perm 777

在整个系统中查找权限设置为 777 的目录,以检查安全风险。

删除旧的 '.tmp' 文件

find /tmp -name "*.tmp" -mtime +30 -delete

在 `/tmp` 目录中查找并删除所有超过 30 天的 `.tmp` 文件。

对找到的文件执行特定命令 (chmod)

find . -name "*.sh" -exec chmod 755 {} \;

授予当前目录中所有扩展名为 `.sh` 的文件执行权限 (755)。

查找由特定用户拥有且大于 1GB 的文件

find /home -user user1 -size +1G

在 `/home` 目录中查找由 `user1` 拥有且大小超过 1GB 的文件。


相同类别命令