在 Linux 命令中,find用于在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名,其支持按名称查找、按正则表达式查找、按文件大小查找、按文件权限查找等多种查询方式。如果在使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件,并且将查找到的子目录和文件全部进行显示。
语法:find + 目标目录(路径) + <选项> + 参数
常用选项列表
示例
首先,给出演示使用的文件结构:
示例 1:查找当前目录及其子目录下所有文件和文件夹
find .
示例 2:在/testLinux目录下查找以.txt结尾的文件名
// 需要书写完整的路径 find /tmp/cg/testLinux -name "*.txt"
示例 3:组合查找文件名以file1开头(与、或、非)file2开头的文件
/** * 组合查找语法: * -a 与(取交集) * -o 或(取并集) * -not 非(同 !) * ! 非(同 not) */ find . -name "file1*" -a -name "file2*" find . -name "file1*" -o -name "file2*" find . -name "file1*" -not -name "file2*" find . -name "file1*" ! -name "file2*"
示例 4:根据文件类型进行搜索
/** * 查找当前目录及所有子目录下的普通文件 */ find . -type f
示例 5:基于目录深度进行搜索
/** * 限制最大深度为 3 */ find . -maxdepth 3 -type f /** * 限制最大深度为 2 */ find . -maxdepth 2 -type f
示例 6:基于文件权限进行搜索
/** * 搜索权限为 777 的文件 */ find . -type f -perm 777 /** * 搜索 .txt 格式且权限不为 777 的文件 */ find . -type f -name "*.txt" ! -perm 777
示例 7:借助-exec命令,将当前目录及子目录下所有.txt格式的文件以File:文件名的形式打印出来
find . -type f -name "*.txt" -exec printf "File: %s\n" {} \;
示例 8:借助-exec命令,将当前目录及子目录下所有 3 天前的.txt格式的文件复制一份到old目录
find . -type f -mtime +3 -name "*.txt" -exec cp {} old \;
文件类型参数列表
  
    
      文件类型参数 
      含义 
    
  
  
    
      f
      普通文件
    
    
      l
      符号连接
    
    
      d
      目录
    
    
      c
      字符设备
    
    
      b
      块设备
    
    
      s
      套接字
    
    
      p
      Fifo
    
  
文件大小单元列表
  
    
      文件大小单元 
      含义 
    
  
  
    
      b
      块(512 字节)
    
    
      c
      字节
    
    
      w
      字(2 字节)
    
    
      k
      千字节
    
    
      M
      兆字节
    
    
      G
      吉字节
    
  
选项列表
  
    
      选项 
      含义 
    
  
  
    
      -amin <分钟>
      查找在指定时间曾被存取过的文件或目录,单位以分钟计算
    
    
      -atime <24小时数>
      查找在指定时间曾被存取过的文件或目录,单位以 24 小时计算
    
    
      -cmin <分钟>
      查找在指定时间之时被更改过的文件或目录
    
    
      -ctime <24小时数>
      查找在指定时间之时被更改的文件或目录,单位以 24 小时计算
    
    
      -anewer <参考文件或目录>
      查找其存取时间较指定文件或目录的存取时间更接近现在的文件或目录
    
    
      -cnewer <参考文件或目录>
      查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录
    
    
      -daystart
      从本日开始计算时间
    
    
      -depth
      从指定目录下最深层的子目录开始查找
    
    
      -expty
      寻找文件大小为 0 Byte 的文件,或目录下没有任何子目录或文件的空目录
    
    
      -exec <执行指令>
      假设find指令的回传值为true,就执行该指令
    
    
      -false
      将find指令的回传值皆设为false
    
    
      -fls <列表文件>
      此参数的效果和指定-ls参数类似,但会把结果保存为指定的列表文件
    
    
      -follow
      排除符号连接
    
    
      -fprint <列表文件>
      此参数的效果和指定-print参数类似,但会把结果保存成指定的列表文件
    
    
      -fprint0 <列表文件>
      此参数的效果和指定-print0参数类似,但会把结果保存成指定的列表文件
    
    
      -fprintf <列表文件> <输出格式>
      此参数的效果和指定-printf参数类似,但会把结果保存成指定的列表文件
    
    
      -fstype <文件系统类型>
      只寻找该文件系统类型下的文件或目录
    
    
      -gid <群组识别码>
      查找符合指定群组识别码的文件或目录
    
    
      -group <群组名称>
      查找符合指定群组名称的文件或目录
    
    
      -help或——help
      在线帮助
    
    
      -name <范本样式>
      指定字符串作为寻找文件或目录的范本样式
    
    
      -iname <范本样式>
      此参数的效果和指定-name参数类似,但忽略字符大小写的差别
    
    
      -ilname <范本样式>
      此参数的效果和指定-lname参数类似,但忽略字符大小写的差别
    
    
      -inum <inode编号>
      查找符合指定的inode编号的文件或目录
    
    
      -path <范本样式>
      指定字符串作为寻找目录的范本样式
    
    
      -ipath <范本样式>
      此参数的效果和指定-path参数类似,但忽略字符大小写的差别
    
    
      -iregex <范本样式>
      此参数的效果和指定-regexe参数类似,但忽略字符大小写的差别
    
    
      -links <连接数目>
      查找符合指定的硬连接数目的文件或目录
    
    
      -ls
      假设find指令的回传值为ture,就将文件或目录名称列出到标准输出
    
    
      -maxdepth <目录层级>
      设置最大目录层级
    
    
      -mindepth <目录层级>
      设置最小目录层级
    
    
      -mmin <分钟>
      查找在指定时间曾被更改过的文件或目录,单位以分钟计算
    
    
      -mount
      此参数的效果和指定-xdev相同
    
    
      -mtime <24小时数>
      查找在指定时间曾被更改过的文件或目录,单位以 24 小时计算
    
    
      -newer <参考文件或目录>
      查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录
    
    
      -nogroup
      找出不属于本地主机群组识别码的文件或目录
    
    
      -noleaf
      不去考虑目录至少需拥有两个硬连接存在
    
    
      -nouser
      找出不属于本地主机用户识别码的文件或目录
    
    
      -ok <执行指令>
      此参数的效果和指定-exec类似,但在执行指令之前会先询问用户,若回答y或Y,则放弃执行命令
    
    
      -perm <权限数值>
      查找符合指定的权限数值的文件或目录
    
    
      -print
      假设find指令的回传值为ture,就将文件或目录名称列出到标准输出,格式为每列一个名称,每个名称前皆有./字符串
    
    
      -print0
      假设find指令的回传值为ture,就将文件或目录名称列出到标准输出,格式为全部的名称皆在同一行
    
    
      -printf <输出格式>
      假设find指令的回传值为ture,就将文件或目录名称列出到标准输出,格式可以自行指定
    
    
      -prune
      不寻找字符串作为寻找文件或目录的范本样式
    
    
      -regex <范本样式>
      指定字符串作为寻找文件或目录的范本样式
    
    
      -size <文件大小>
      查找符合指定的文件大小的文件
    
    
      -true
      将find指令的回传值皆设为true
    
    
      -type <文件类型>
      只寻找符合指定的文件类型的文件
    
    
      -uid <用户识别码>
      查找符合指定的用户识别码的文件或目录
    
    
      -used <日数>
      查找文件或目录被更改之后在指定时间曾被存取过的文件或目录,单位以日计算
    
    
      -user <拥有者名称>
      查找符和指定的拥有者名称的文件或目录
    
    
      -version或——version
      显示版本信息
    
    
      -xdev
      将范围局限在先行的文件系统中
    
    
      -xtype <文件类型>
      此参数的效果和指定-type参数类似,差别在于它针对符号连接检查
    
  
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
                        







