博客
关于我
linux搜索命令---find
阅读量:794 次
发布时间:2023-02-04

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

Linux系统中find命令的使用指南

find命令是Linux系统中一个强大的文件查找工具,能够根据指定条件快速定位文件或目录。本文将详细介绍find命令的使用方法、工作特点以及常用参数组合。

find命令的语法格式

find命令的一般形式如下:

find [路径名] -options [-print -exec -ok ...]
  • 路径名:指定查找的目录路径,若省略则默认为当前目录。
  • options:查找条件,支持文件名、大小、类型、权限等标准,默认为查找指定路径下的所有文件。
  • 处理动作:如-print默认打印查找结果;-exec或-ok用于执行自定义shell命令。

示例:在当前目录下查找以“.txt”结尾的文件:

find . -name "*.txt" -print

示例二:在指定路径"/app"下查找“help.txt”文件并打印:

find /app -name "help.txt" -print

find命令的参数

路径参数

  • .:表示当前目录。
  • /:表示系统根目录。
  • 绝对路径或相对路径均可使用。

示例:在"/app"目录下查找以“.txt”结尾的文件,可以使用相对路径:

find /app -name "*.txt" -print

find . -name "*.txt" -print

处理动作参数

  • -exec:执行shell命令,格式为command { } \;,注意空格和分号。
  • -ok:与-exec类似,但在执行命令前提示用户确认。

示例:删除匹配文件:

find /app -name "*.txt" -ok "rm -rf {}"

find命令的优势与不足

优点

  • 实时性:find命令能够快速生成结果。
  • 精确性:支持多种查找条件,搜索范围可控。
  • 灵活性:可结合其他命令(如xargs)进行批量操作。

缺点

  • 速度较慢:对大型目录Recursive搜索时性能较差。

find命令的使用技巧

指定查找深度

  • -mindepth n:限制最小搜索深度。
  • -maxdepth n:限制最大搜索深度。

示例:查找第三级目录下的特定文件:

find /app -mindepth 2 -maxdepth 2 -name "hello.txt" -print

查找空文件

find /app -empty -print

基于文件属性的查找

  • -user 用户名:查找属主为指定用户的文件。
  • -group 组名:查找属组为指定组的文件。
  • -uid UID:查找属主UID号的文件。
  • -gid GID:查找属组GID号的文件。
  • -nouser:查找没有属主的文件。
  • -nogroup:查找没有属组的文件。

示例:查找属主为用户root且大小小于10KB的文件:

find /app -user root -size -10k -print

基于文件类型的查找

  • -type f:普通文件。
  • -type d:目录文件。
  • -type l:符号链接文件。
  • -type s:套接字文件。
  • -type b:块设备文件。
  • -type c:字符设备文件。
  • -type p:管道文件。

示例:查找符号链接文件:

find /app -type l -print

基于文件大小的查找

  • -size [+|-]#UNIT:常用单位包括k, M, G, c(字节)。

示例:查找大于5MB的文件:

find /app -size +5M -print

基于文件时间的查找

  • -atime [+|-]time:查找访问时间。
  • -mtime [+|-]time:查找修改时间。
  • -ctime [+|-]time:查找元数据修改时间。

示例:查找刚修改的文件(过去一小时内的文件):

find /app -mtime -60 -print

基于文件权限的查找

  • -perm MODE:精确匹配文件权限。
  • -perm /MODE:按类(u, g, o)匹配权限。

示例:查找755权限的文件(类似执行权限的文件):

find /app -perm 755 -print

组合条件查找

  • -a:与。
  • -o:或。
  • -not:非。

示例:查找目录或图片文件且大小大于100KB:

find /app -type d -o -type f -size +100k -print

处理查找结果

  • -print:默认打印结果。
  • -ls:以长文件列表格式显示结果。
  • -delete:删除查找结果。
  • -exec:执行shell命令,非交互式执行。
  • -ok:交互式确认执行。

示例:删除指定目录下以“.txt”结尾的文件:

find /app -name "*.txt" -delete

示例二:批量复制文件并删除原文件:

find /app -name "*.txt" -exec "cp {} / backup/; rm -f {}"

注意事项

  • 路径参数:支持绝对路径和相对路径,默认为当前目录。
  • 空文件查找:使用 -empty 参数。
  • 处理动作:需谨慎使用,避免误删重要文件。

通过掌握find命令的各种参数和使用方法,你可以轻松高效地在Linux系统中定位到所需文件。

转载地址:http://zdkfk.baihongyu.com/

你可能感兴趣的文章
Linux工作笔记023---Centos7 查看系统安装了什么软件_多少软件
查看>>
Linux工作笔记024---Centos7 下查看本机公网IP
查看>>
Linux工作笔记025---CentOS7.3安装Nginx
查看>>
Linux工作笔记026---Centos7.3 yum提示Another app is currently holding the yum lock; waiting for it to exit.
查看>>
Linux工作笔记027---Centos7.3 查看tomcat所占用的端口号
查看>>
Linux工作笔记028---Centos7.3 netstat命令详解
查看>>
Linux工作笔记029---Centos7.3 服务器下查看tomcat服务是否启动,重启,查看错误日志等基本操作
查看>>
Linux工作笔记030---Centos7.3启动tomcat 输入startup.sh后提示command not found
查看>>
Linux工作笔记031---Centos7.3下安装tomcat
查看>>
Linux工作笔记032---Centos7.3 kill杀掉不用的进程_查看某个进程_某个进程占用的cpu,内存情况
查看>>
Linux工作笔记032---Centos7.3/8.2 下安装mysql_不局限于MySql版本
查看>>
Linux工作笔记033---Linux(CentOS7)安装zip、unzip命令
查看>>
Linux工作笔记034---linux tail命令详解_linux在vi中查找字符串
查看>>
Linux工作笔记035---linux内网测试访问外网网速_外网测试访问内网网速
查看>>
Linux工作笔记035---设置连接Linux Centos 超时连接时间_空闲的等待时间 -bash: TMOUT: readonly variable
查看>>
Linux工作笔记036---Centos下查看cpu、磁盘、内存使用情况以及如何清理内存
查看>>
Linux工作笔记037---Centos8.2下安装mysql_测试通过_注意这里安装8.0.22版本的_8.0以后的版本有需要注意的地方_跟7.0之前的版本不一样
查看>>
Linux工作笔记037---Centos下Linux创建用户_用户组_删除用户
查看>>
Linux工作笔记038---CentOS8.2安装Nginx_测试通过
查看>>
Linux工作笔记038---Centos下Linux下解决root用户Operation not permitted
查看>>