首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >find命令

find命令

作者头像
cultureSun
发布2023-05-18 14:34:27
6790
发布2023-05-18 14:34:27
举报

简介

find是linux 命令,它将档案系统内符合 expression 的档案列出来。你可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find 根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。 --摘自百度百科

详解

语法: find [path...] [expression] path指明查找路径,不写默认当前路径。 expression指明查找条件(可以多个条件),以及可以对查找结果操作。

按名称查找

使用参数 -name --查找指定的文件名 find ./ -name test.txt --支持使用通配符 find ./ -name "*.txt"

按文件类型查找

使用参数 -type

d

c

b

p

f

l

s

目录

字型装置文件

区块装置文件

具名贮列

一般文件

符号连结

socket文件

--查找普通文件 find ./ -type f --查找目录 find ./ -type d

按时间查找

使用参数:

-atime

最后一次读取文件的时间(单位都是天)

-mtime

文件内容最后一次被修改的时间

-ctime

上次更改文件元数据的时间(如,所有权、位置、文件类型和权限设置)

--查找往前推第30天读取过的文件 find ./ -atime 30 --查找查找往前推第30天之前修改过的文件 find ./ -mtime +30 --查找查找往前推第30天之后更改元数据过的文件 find ./ ctime -30

按文件大小查找

使用参数- size 计量单位:

b

c

w

k

M

G

512 字节块(默认)

字节

双字节

KB

MB

GB

--查找512字节文件 find ./ -size 1b --查找小于512字节块的文件 find ./ -size -512c --查找大于1KB的文件 find ./ -size +1k --查找大于1KB小于1MB文件 find ./ -size +1k -size +1M

按权限查找

使用参数-perm --查找777文件 find ./ -perm 777

按用户查找

所有参数-user --查找属于用户test的文件 find ./ -user test

对查找结果操作

使用参数-exec 使用{}是用于查找结果(注意不是结果集,比如查找结果是a,b两文件,会依次对a和b分开操作,且a,b是字符串类型)的占位符,使用 \; 结束语句,其中 \ 代表转义。

┌──(root㉿kali)-[~/Desktop]
└─# find -name "123*"        #查看输出结果                     
./1234.png
./123.php
./123.png
./123456
                                                                                                    
┌──(root㉿kali)-[~/Desktop]
└─# find -name "123*" -exec echo {} nihao \;       #在输出结果后加上nihao字符串 
./1234.png nihao
./123.php nihao
./123.png nihao
./123456 nihao
                                                                                                                                                                                               
┌──(root㉿kali)-[~/Desktop]
└─# find -name "123456*" -exec rm -rf {} \;     #查找并删除文件
                                                                                                                                                                                                     
┌──(root㉿kali)-[~/Desktop]
└─# find -name "123456*"      #查找结果为空

Bash

指定查找深度

find默认递归查找所有子目录,可以通过参数-maxdepth指定最大深度,-mindepth指定最小深度,1代表当前目录 --查找当前目录 find ./ -maxdepth 1 --查找子目录且不查找子目录的子目录 find ./ -maxdepth 2 --不查找当前目录,但是查找子目录下的所有文件 find ./ -mindepth 2

与或非查找

find提供多条件查询(多条件默认是与),功能适用更多场景。

-a

-o

!

实例:

┌──(root㉿kali)-[~/Desktop/example]
└─# ls   #查看文件
aabbcc.txt  aabc.txt  aa.txt  abc.txt  ac.txt  a.txt

──(root㉿kali)-[~/Desktop/example]
└─# find ./ -name "*bc*" -a -name "a*"  #查找文件名以a开头且包含bc的文件
./abc.txt
./aabc.txt
./aabbcc.txt
                                                                                                                
┌──(root㉿kali)-[~/Desktop/example]
└─# find ./ -name "*bc*" -name "a*"   #同上,多条件默认是与所以可以不写 -a 
./abc.txt
./aabc.txt
./aabbcc.txt
                                                                                                                
┌──(root㉿kali)-[~/Desktop/example]
└─# find ./ -name "*bc*" -o -name "a*"  #查找文件名以a开头或包含bc的文件
./aa.txt
./abc.txt
./aabc.txt
./aabbcc.txt
./a.txt
./ac.txt
                                                                                                                                                                                                                           
┌──(root㉿kali)-[~/Desktop/example]
└─# find ./ ! -name "*bc*"     #查找文件名不包含bc的文件         
./
./aa.txt
./a.txt
./ac.txt
                                                                                                                                                                                                                        
┌──(root㉿kali)-[~/Desktop/example]
└─# find ./ ! -name "*bc*" -a ! -name "ac*"  ##查找文件名不以ac开头且不包含bc的文件
./
./aa.txt
./a.txt
                                                                                                                
┌──(root㉿kali)-[~/Desktop/example]
└─# find ./ ! -name "*bc*"  ! -name "ac*"   #同上,-a可以省略
./
./aa.txt
./a.txt

Bash

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 详解
    • 按名称查找
      • 按文件类型查找
        • 按时间查找
          • 按文件大小查找
            • 按权限查找
              • 按用户查找
                • 对查找结果操作
                  • 指定查找深度
                    • 与或非查找
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档