Linux下find命令

60 篇文章 0 订阅
54 篇文章 0 订阅
/********************************************************
 * Author: Goup
 *
 * Date: 2017-09-06 09:09
 *
 * Description: grep
 *
 ********************************************************/
 
由于locate的非精确查找和非实时查找的特性,导致locate用的不多 
find支持实时查找,拥有众多查找选项,是Linux上查找最常用的,但是缺点也是比较明显: 如果文件数量很多的话,查找起来很慢


whatever,find依然是最有用且最常用的Linux查找命令


用法


find支持文件名的正则表达式查找,按文件修改时间查找,按文件大小查找,按文件权限查找,按文件类型查找等,查找到以后还支持直接对查找到的
文件使用命令,功能非常强大


典型的find命令的写法是:


find 查找路径 查找的标准 查找到之后的动作

比如: find /home -type d -ls 
意思是: 找出/home/下所有的目录,并显示目录的详细信息


选项


1.按文件名查找


-name 

直接加文件名,且支持文件名通配

iname 
类似于-name, 但是匹配文件名时不去分大小写

-regex 
正则表达式匹配文件名

example:
find . -name "vim*" -ls 

查找当前目录下所有以vim开头的文件,并显示其详细信息 

find . -iname "vim*" -ls 

查找当前目录下所有以vim开头的文件(不区分大小写),并显示其详细信息

2.按文件类型查找


-type 文件属性

d: 目录
f: 普通文件
l: 链接文件(link)
s: socket文件
p: 管道文件(pipe)
b: 块设备文件
c: 字符设备文件

example:

find . -type d -ls 
显示当前目录下所有的目录的详细信息 

find . -type l -ls 
显示当前目录下所有的链接文件的详细信息

3.按文件所属组/owner查找


-gid GID
-uid UID
-user USER
-group GROUP
-nouser
-nogroup

exmaple:


find . -user gavinzhou -ls 
显示当前目录下属于gavinzhou的所有的文件的详细信息

4.按文件大小查找


size [+,-][b,k,M,G]

example:


find . -type f -size +1k -ls 
显示当前目录下所有大于1k的普通文件的详细信息

5.按文件的修改时间等查找


ctime: 改变时间(按照天计算)
atime: 访问时间
mtime: 修改时间 
-amin: 改变时间(按照分钟计算) 
-cmin: 访问时间 
-mmin: 修改时间

使用[+,-]表示[大于,小于]


example:


find . -atime -1 -ls 
显示当前目录下所有在两天以内访问过得文件的详细信息 

find . -cmin +10 -ls 
显示当前目录下所有超过10min没有改变过的文件的详细信息

6.按文件权限查找


-perm MODE 
/MODE: 任意一位匹配即满足条件 
-MODE: 文件权限能完全包含此MODE时才符合条件

example:


find . -perm -644 -ls 
显示当前目录下文件权限的每一位至少包含r-xr–r–的文件的详细信息 

find . -perm /464 -ls 
显示当前目录下文件权限的某一位至少包含r–rx-r–的文件的详细信息

7.组合查找


-a: and 
-o: or 
-not:

example:


find . -type d -o -type l -ls 
显示当前目录下所有目录和链接文件的详细信息

8.后继命令


-print: 显示
-ls:类似ls -l的形式显示每一个文件的详细
-quit: 查找到一个就退出
-delete: 删除匹配到的行
-ok COMMAND {} \; 每一次操作都需要用户确认,{}表示引用找到的文件,是占位符
-exec COMMAND {} \; 每次操作无需确认

example:


find . -type d -delete 
删除当前目录下的所有目录 

find . -type f -ok wc -l {} \; 
找出当前目录下所有的普通文件并显示文件行数(需确认) 

find . -type f -exec wc -l {} \; 
找出当前目录下所有的普通文件并显示文件行数(无需确认)
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值