Linux find命令:查找文件
在 Linux 系统中,find 命令是一个非常强大的工具,它用于在指定目录及其所有子目录中搜索文件和目录。
find 命令的语法格式是:
其中,在“-type”选项中,可供选择的文件类型主要有以下几种:
【实例 1】查找当前目录下所有名为 example.txt 的文件
【实例 2】查找当前目录及其子目录下所有大于 10MB 的文件
【实例 3】查找 /home 目录下最近7天内修改过的目录
【实例 4】查找当前目录下所有 .txt 文件,并列出它们的完整路径
【实例 5】查找当前目录下所有文件,并对每个找到的文件执行 ls -l 命令
find 命令非常灵活,可以根据不同的搜索条件进行定制,以满足各种搜索需求。上述实例只是 find 命令的一些基本用法,实际上它还有更多的选项和功能。
find 命令的语法格式是:
find [查找范围] [查找条件表达式]
find 命令的常用选项见下表:常用选项 | 说 明 |
---|---|
-name |
根据文件/目录名进行查找,可以使用通配符(? , *)。 ?: 匹配文件名中一个任意字符,*: 匹配文件名中任意数量的任意字符。 |
-size n | 根据文件大小进行查找,使用(+ / —)设置大于或小于 n 的文件,常用单位为 KB、MB、GB。 |
-user 用户名 | 查找符和指定的拥有者名称的文件或目录 |
-mtime -n +n |
根据文件的更改时间来查找文件,-n 表示文件更改时间距离现在 n 天以内,+n 表示文件更改时 间距离现在 n 天以前。 |
-amin <分钟〉 | 查找在指定时间曾被存取过的文件或目录,单位以分钟计算。 |
-type <文件类型〉 | 只寻找符合指定文件类型的文件 |
其中,在“-type”选项中,可供选择的文件类型主要有以下几种:
- d:文件夹;
- f:一般文件;
- b:块设备;
- c:字符设备文件;
- l:符号链接文件;
- p:管道文件。
【实例 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 命令的一些基本用法,实际上它还有更多的选项和功能。