Skip to content

文件查找

linux 没有图形界面,需要通过find指令查找文件。

普通文件查找

  1. 普通查询

    find /tmp -maxdepth 1 -type f -name "*.txt"
    • -type:表示文件类型,f表示文件,不指定类型的话,文件和目录都会查找
    • -maxdepth:表示查找深度,目录层级的意思,不指定则按照最大深度来找,就是会遍历目录下的所有文件和目录进行查找。
    • “*.txt”:表示匹配任意内容开头的文件,但是必须是以.txt结尾的文件。

按照文件大小查找

单位k,M,Gk要小写,MG要大写,不带单位就按照B单位来查找

  1. 查找文件大小 小于1M的文件。

    指令示例:

    find /tmp -type f -size -1M
  2. 查找文件大小大于2M的文件

    find /tmp -type f -size +2M
  3. 查找文件大小在1M2M之间的文件

    find /tmp -type f -size +1M -and -size -2M

忽略大小写查询

假设有两个文件名分别是:About.txt,about.txt。想要查询时不区分大小写,两个文件都要搜索到,可以使用以下示例指令。

find /tmp -type f -iname "a*.txt"
  • -inameiignore的简写,忽略的意思

根据时间查找文件

  1. 查询文件相关的时间信息

    //指令
    stat _fileName
    
    //例子
    stat a.txt
      File: a.txt
      Size: 12        	Blocks: 8          IO Block: 4096   regular file
    Device: 2ch/44d	Inode: 94128       Links: 1
    Access: (0664/-rw-rw-r--)  Uid: ( 1002/   Eddie)   Gid: ( 1002/   Eddie)
    Access: 2024-12-18 23:01:48.970195981 +0800 # Access time
    Modify: 2024-12-18 23:01:44.692038712 +0800 # Modify time
    Change: 2024-12-18 23:01:44.692038712 +0800 # Change time
     Birth: -
  2. 在文件查询指令中添加时间参数

    时间参数:atime,mtime,ctime,amin,mmin,cmin。(time是按照天数查找,min是按照分钟查找)。

    • 按照天数查找:

      find /tmp -type -f -mtime -1

      -mtime -1:表示查询一天以内修改的文件,m表示时间类型是Modify timetime表示按天查找,-1表示一天以内,+1表示一天以前。

    • 时间单位为分钟:

      find /tmp -type f -mmin -20

      表示20分钟内修改过的文件

    • 查找一个区间时间内的文件

      find /tmp -type f -mtime +1 -and -mtime -10

取反

!对查询取反。

  1. 找名称中不是.txt结尾的文件

    find /root -type f ! -name "*.txt"
  2. 找文件夹

    find /root ! -type f

根据用户查找文件

查找某个用户的文件:

find /tmp -user _userName

对找出的文件进行处理

比如说找到 用户为Eddie并且是.txt结尾的文件,然后显示它们的权限信息。

find /tmp -user Eddie -type f -name "*.txt" -exec ls -l {} \;
  • -exec:表示要追加的指令
  • {}:表示查询指令的搜索结果,这个大括号要记得写。
  • \;;进行转义

可以使用find -help查看更多功能。