首页 > 编程笔记

Linux find命令:查找文件

在 Linux 系统中,find 命令是一个非常强大的工具,它用于在指定目录及其所有子目录中搜索文件和目录。

find 命令的语法格式是:

find [查找范围] [查找条件表达式]

find 命令的常用选项见下表:

表:find 命令的常用选项
常用选项 说  明
-name 根据文件/目录名进行查找,可以使用通配符(? , *)。
?: 匹配文件名中一个任意字符,*: 匹配文件名中任意数量的任意字符。
-size n 根据文件大小进行查找,使用(+ / —)设置大于或小于 n 的文件,常用单位为 KB、MB、GB。
-user 用户名 查找符和指定的拥有者名称的文件或目录
-mtime -n +n 根据文件的更改时间来查找文件,-n 表示文件更改时间距离现在 n 天以内,+n 表示文件更改时
间距离现在 n 天以前。
-amin <分钟〉 查找在指定时间曾被存取过的文件或目录,单位以分钟计算。
-type <文件类型〉 只寻找符合指定文件类型的文件

其中,在“-type”选项中,可供选择的文件类型主要有以下几种:
【实例 1】查找当前目录下所有名为 example.txt 的文件

find . -name example.txt

这个命令从当前目录(.)开始,搜索所有名为 example.txt 的文件。

【实例 2】查找当前目录及其子目录下所有大于 10MB 的文件

find . -type f -size +10M

这个命令搜索当前目录及其所有子目录下所有大于 10MB 的文件。

【实例 3】查找 /home 目录下最近7天内修改过的目录

find /home -type d -mtime -7

这个命令搜索 /home 目录及其子目录下最近7天内被修改过的目录。

【实例 4】查找当前目录下所有 .txt 文件,并列出它们的完整路径

find . -type f -name "*.txt"

这个命令搜索当前目录及其子目录下所有扩展名为 .txt 的文件,并列出它们的完整路径。

【实例 5】查找当前目录下所有文件,并对每个找到的文件执行 ls -l 命令

find . -exec ls -l {} \;

这个命令对当前目录及其子目录下所有找到的文件执行 ls -l 命令。注意,{} 是一个占位符,代表当前找到的文件名,\; 用于结束 -exec 选项。

find 命令非常灵活,可以根据不同的搜索条件进行定制,以满足各种搜索需求。上述实例只是 find 命令的一些基本用法,实际上它还有更多的选项和功能。

推荐阅读

副业交流群 关注微信公众号,加入副业交流群,学习变现经验,交流各种打法。