欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 焦点 > Linux中的find命令

Linux中的find命令

2025/9/27 23:37:53 来源:https://blog.csdn.net/lemon310/article/details/140907323  浏览:    关键词:Linux中的find命令


一,命令介绍

Linux find 命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果没有写目录,则默认为当前目录下查找。

二,命令详解

基本语法

find [path] [expression]

path:指定搜索目录

expression:将要执行的文件

常用选项:

  • -name:按照文件名搜索。
    • 例如:find / -name "*.txt" 搜索根目录下所有扩展名为 .txt 的文件。
  • -type:指定文件类型。
    • 例如:find / -type d 搜索所有目录。
  • -user:按照文件所有者搜索。
    • 例如:find / -user john 搜索用户 john 拥有的所有文件。
  • -group:按照文件所属组搜索。
    • 例如:find / -group staff 搜索属于 staff 组的所有文件。
  • -mtime:按照文件内容上次修改时间搜索,单位为天。
    • 例如:find / -mtime 7 搜索过去 7 天内修改过的文件。
  • -ctime:按照文件状态信息上次修改时间搜索。
  • -atime:按照文件上次访问时间搜索。
  • -size:按照文件大小搜索,可以指定 +n(大于 n)、-n(小于 n)、n(等于 n),其中 n 以 1KB 为单位。
    • 例如:find / -size +100M 搜索大于 100MB 的文件。

操作符:

  • -o:逻辑或操作。
    • 例如:find / -name "*.sh" -o -name "*.txt" 搜索所有扩展名为 .sh.txt 的文件。
  • -not!:逻辑非操作。
    • 例如:find / ! -name "*.log" 搜索所有除了扩展名为 .log 的文件。

动作:

  • -exec:对找到的每个文件执行命令。
    • 例如:find / -type f -exec ls -l {} \; 对每个找到的文件执行 ls -l 命令。
  • -print:打印找到的文件名(默认动作,通常不需要显式指定)。
  • -delete:删除找到的文件。

组合使用:

  • 可以组合多个选项和操作符来定义复杂的搜索条件。

示例:

  • 搜索当前目录及子目录下所有 .txt 文件:
    find . -name "*.txt"
    
  • 搜索 /home 目录下所有用户 john 的文件,并列出详细信息:
    find /home -user john -exec ls -l {} \;
    
  • 搜索 /var 目录下过去 30 天内未被访问过的文件:
    find /var -atime +30
    

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com