linux 查看文件前半部分,linux 文件查找 (locate 与 find)

文件查找

目录

1.locate

2.find

一. locate

locate命令基于数据库db,所以不能实时更新

他有如下的特点:

1.查找速度快

2.是模糊查找(可能搜到了文件,也有可能搜到了目录)

3.是非实时的查找

4.由于权限的原因可能只查找到一部分的文件

locate 参数:

-i 不区分大小写

-n N 只列举前N个项目

-r 支持正则表达式

locate xiaoyu

搜索名称或路径中带有"xiaoyu"的文件

例:

dc3479ca71b36ce198866ca350f44ea2.png

二. find

实时查找工具,通过遍历指定路径完成文件查找

有如下的工作特点:

1.查找速度略慢

2.精确查找

3.实时查找

4.可能只搜索到用户具备读取和执行权限的目录

find [查找路径] [查找条件] [处理动作]

查找路径 :制定具体目标路径,默认为当前目录

查找条件:

1.按搜索层级

-maxdepth level 最大搜索目录深度,指定目录为第一级

-mindepth level 最小搜索目录深度

cd271f9272fca47c9a167424359b6912.png

2.根据文件所属组或所属人

-user UserName 查找文件所属人为指定用户(也可以为UID)的文件

-group groupName :查找文件所属组为指定组(也可以为GID)的文件

db10a19105841a0465ff5a9b8ec556bf.png

-uid UserId :查找属组为指定的UID的文件

-gid GroupId :查找属组为指定的GID的文件

ad9bfbff1b3c4867110e55d8b44f9a60.png

-nouser :查找没有属主的文件

-nogroup :查找没有属组的文件

d285d8ef54e74ed918ecb0d322b038de.png

3.根据文件名和inode查找

-name Name :根据

-iname Nmae :不区分文件名称大小写

01888b3b29a4735461967a863b875083.png

可以看到,目录下有三个包含“xiaoyu“的文件,当执行不区分大小写时,只显示了一个文件,find为精确查找

-inum n :按inode号查找

-samefile name :相同inode号的inode文件

42109cf3720cb7eae4f315d19d7ee647.png

-links n :链接数为n的文件

ec75fa02243d2b6bc3c1fda41ddbec56.png

注:这里xiaoyu和XIAOYU inode号相同,故链接数为2. 其他链接数为2的均是目录,因为有 . 和 .. 这两个链接

-regex "PATTERN : 以PATTERN匹配整个文件路径字符串,不仅仅是文件名称

fec601883b1678a2a481105e556f7c9a.png

注:-regextype posix-extended 表示支持扩展正则表达式

4.根据文件类型查找

-type TYPE :

f : 普通文件

d: 目录文件

I: 符号链接文件(软链接)

s: 套接字文件

b: 块设备文件

c: 字符设备文件

p: 管道文件

查找/var目录下属主为root,且属组为mail的所有文件

f3e71c1250971a7e0ef4bd76ffefec7c.png

5.组合条件

与:-a

或:-o

非:-not

6.根据文件大小来查找

-size [option]

num :(num-1,num]

-num :[0,num-1]

+num:(num,∞)

查找/etc目录下大于1M且类型为普通文件的所有文件

3bfcde69638a52802427e9d9299b504e.png

7.根据时间戳:

以天为单位:

-atime 【num】(访问时间)

num: 【num,num+1】

+num:【num+1,∞】

-num:【0,num)

-mtime (修改时间)

-ctime (文件元数据修改时间)

查找当前系统上没有属主或属组,且最近一个周内曾被访问过的文件

d3175d8fd3f57c17fefd62b6ade98520.png

以分钟为单位:

-amin 【num】(访问时间)

num:【num,num+1】

+num:【num+1,∞】

-num:【0,num)

-mmin (修改时间)

-cmin(文件元数据修改时间)

8. 根据文件权限来查找:

-perm 【/ | -】 MODE

MODE: 精确权限匹配

/MODE:任何一类对象中的权限中只要能一位匹配就行(或关系)

当权限为大于等于5时,满足其中任意一项即可。

-MODE:每一类对象都必须同时拥有指定权限(与关系),0表示不关注

例:find -perm 755 匹配当前目录下权限仅为755的文件

find -perm /444 三类对象只要其中一个具有r权限就行

find -perm -444 三类对象每个都要具有r权限才可以

查找/etc目录下所有用户都没有写权限的文件

e9d418591ecf8eb78bad8c52954968a1.png

处理动作:

-print: 默认的处理动作

-ls : 类似ls命令

-delete: 删除查找到的文件

-fls file :查找到的所有文件的长格式信息保存到指定文件中

-ok COMMAND {} \ ; 对查找到的每个文件都执行COMMAND命令,执行之前都会询问用户是否执行

7fbb1162c5a1aa939d4c4b0024444bb4.png

-exec COMMAND {} \ ; 对查找到的每个文件都执行COMMAND命令,执行之前不会询问用户是否执行

{} 用于引用查找到的文件名称自身

参数替换 xargs

当文件很多时,且需要后续的一些操作,搭配管道符就会出错。xargs 可以和管道符搭配,

实现read一些命令,例如:

97002f9a1b5b6f03b405ed61d65f941d.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值