linux find 命令查找文件和文件夹
发布日期:2021-05-14 09:15:46 浏览次数:22 分类:精选文章

本文共 1531 字,大约阅读时间需要 5 分钟。

Linux find 命令查找文件和文件夹

find命令是Linux系统中的一个强大工具,用于在指定目录下查找文件和文件夹。它可以根据文件名、类型、大小、权限、时间戳等条件进行筛选。以下是关于find命令的详细说明,包括语法、选项、参数以及实例。

find 命令语法

find带有选项后跟参数使用。语法格式如下:

find [选项] [参数]

find命令选项

以下是一些常用选项的解释:

  • -amin <分钟>:查找在指定时间曾被存取过的文件或目录,单位以分钟计算。
  • -atime <24小时数>:查找在指定时间曾被存取过的文件或目录,单位以24小时计算。
  • -depth:从指定目录下最深层的子目录开始查找。
  • -name <范本样式>:指定字符串作为寻找文件或目录的范本样式。
  • -type <文件类型>:只寻找符合指定文件类型的文件。

更多选项请参考官方文档

字段参数

默认情况下,find命令的起始目录是当前目录。如果要指定特定目录,可以直接在命令中指定。

实例

根据文件或正则表达式进行匹配

查找当前目录及子目录下所有以.txt和.pdf结尾的文件:

find . \( -name "*.txt" -o -name "*.pdf" \)

或者:

find . -name "*.txt" -o -name "*.pdf"

列出当前目录及子目录下所有文件和文件夹

find .

在特定目录下查找以.txt结尾的文件

find /home -name "*.txt"

忽略大小写 匹配文件路径或文件

find /usr/ -path "*local*"

基于正则表达式匹配文件路径

find . -regex ".*\(\.txt\|\.pdf\)$"

忽略大小写进行匹配

find . -iregex ".*\(\.txt\|\.pdf\)$"

否定参数

找出/home下不是以.txt结尾的文件:

find /home ! -name "*.txt"

根据文件类型进行搜索

文件类型参数列表:

  • f:普通文件
  • l:符号连接
  • d:目录
  • c:字符设备
  • b:块设备
  • s:套接字
  • p:Fifo

查找当前目录下所有普通文件:

find . -type f

基于目录深度搜索

限制搜索深度为3:

find . -maxdepth 3 -type f

基于目录深度搜索

查找深度超过当前目录至少2个子目录的文件:

find . -mindepth 2 -type f

基于文件时间戳进行搜索

查找访问时间在过去7天内的文件:

find . -type f -atime -7

基于文件大小进行匹配

文件大小单位:

  • b:块(512字节)
  • c:字节
  • k:千字节
  • M:兆字节
  • G:吉字节

查找大于10KB的文件:

find . -type f -size +10k

删除匹配文件

删除当前目录下所有.txt文件:

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

根据文件权限、所有权进行匹配

当前目录下搜索权限为777的文件:

find . -type f -perm 777

查找特定用户或组的文件

找出当前目录下用户tom拥有的所有文件:

find . -type f -user tom

执行指令与脚本自动化

将文件大小写更改为小写文件名,并保存到结果文件中:

find . -name "*.txt" -exec rename -n '{}' '{}' \;

find命令功能强大,能够根据需求进行灵活组合使用。通过合理搭配选项和参数,可以实现对文件和目录的高度定制化搜索和处理。如果还有其他问题或需要更深入的学习,可以参考Linux官方文档

上一篇:Mysql客户端内-常用命令详解
下一篇:查看linux端口号以及是否被占用

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2025年04月11日 23时16分55秒