linux查⼀个⽂件中abc字段命令,Linux查询命令整理(⽰例
代码)
在linux中,查命令主要有find和grep,以及mlocate/locate
区别:
(1)find命令是根据⽂件的属性进⾏查,如⽂件名,⽂件⼤⼩,所有者,所属组,是否为空,访问时间,修改时间等。
(2)grep是根据⽂件的内容进⾏查,会对⽂件的每⼀⾏按照给定的模式(patter)进⾏匹配查。
(3)mlocate(locate) 命令⽤来查⽂件或⽬录,速度快。
⼀、find命令
find 是⽂件层次的查(包括⼦⽬录,就是对当前路径树查)
基本格式:find path name
1、按照⽂件名查
(1)find /opt -name #在/opt⽬录下查⽂件
(2)find /opt - #在/opt⽬录下⽂件
(3)find /opt -name ‘*abc*‘ #使⽤通配符*。表⽰在/opt⽬录下查⽂件名中含有字符串‘abc’的⽂件
(4)find / -name ‘abc*‘ #表⽰当前⽬录下查⽂件名开头是字符串‘abc’的⽂件
2、可指定⽂件类型查
find / -name "abc*" -type d # 查类型为⽬录类型
find / -name "abc*" -type f # 查类型为⽂件类型
-type t
True if the file is of the specified type. Possible file types
are as follows:
b block special
c character special
d directory
f regular file
l symbolic link
p FIFO
s socket
3、控制⽬录查深度
-maxdepth number
find / -name "abc*" -maxdepth 2 # 查到⼆级⽬录
4、按照⽂件特征查
时间:
(1)find / -amin -10 # 查在系统中最后10分钟访问的⽂件(access time)
(2)find / -atime -1 # 查在系统中最后24⼩时访问的⽂件
(3)find / -mmin -10 # 查在系统中最后10分钟⾥修改过的⽂件(modify time)
(4)find / -mtime -2 #查在系统中最后48⼩时⾥修改过的⽂件
补充:history 10 #表⽰查看系统最后使⽤的10条命令
⼤⼩:
(1)find / -size +100M #查出⼤于100M字节的⽂件(c:字节,w:双字,k:KB,M:MB,G:GB)
(2)find / -size -100M #查出⼩于100M的⽂件
其他:
(1)find / -empty # 查为空的⽂件/夹
(2)find / -user ljw #查属于⽤户是ljw的⽂件/夹
(3)find / -group ljw # 查group(组)为ljw的⽂件/夹
5.使⽤混合查⽅式查⽂件
参数有: !,-and(-a),-or(-o)
(1) find /opt -size +100M -and -mtime +10 #在/opt⽬录下查⼤于100M并在最后10分钟内修改的⽂件
(2) find / -user ljw -or -user ljw1 #在/⽬录下查多个⽤户是ljw或者ljw1的⽂件⽂件
(3) find /opt ! -user ljw #在/opt⽬录中查所有不属于⽤户ljw的⽂件
⼆、grep 命令
基本格式:grep 字符串 路径
1、主要参数
[options]主要参数:
-c:只输出匹配⾏的计数。
-i:不区分⼤⼩写
-h:查询多⽂件时不显⽰⽂件名。
-l:查询多⽂件时只输出包含匹配字符的⽂件名。
-n:显⽰匹配⾏及⾏号。
-s:不显⽰不存在或⽆匹配⽂本的错误信息。
-v:显⽰不包含匹配⽂本的所有⾏。
2、grep -r "字符串"
(1)grep ‘test‘ d* #显⽰所有以d开头的⽂件中包含 test的⾏
(2)grep ‘test’ aa bb cc #显⽰在aa,bb,cc⽂件中包含test的⾏
(3)grep ‘[a-z]{5}’ aa #显⽰所有包含每⾏字符串⾄少有5个连续⼩写字符的字符串的⾏
(4)grep magic /usr/src #显⽰/usr/src⽬录下的⽂件(不含⼦⽬录)包含magic的⾏
(5)grep -r magic /usr/src #显⽰/usr/src⽬录下的⽂件(包含⼦⽬录)包含magic的⾏
(6)grep -w pattern files :只匹配整个单词,⽽不是字符串的⼀部分(如匹配’magic’,⽽不是’magical’),
3、grep 可以结合其他命令使⽤,效果也很好
例如利⽤通道‘|’查⽂件
grep -Rl ‘name‘ /opt # 查⽂件内容。其中查的字符串,可不写引号‘‘。
递归查⽂件,在路径/opt下(包括⼦⽬录),出⽂件内容中含有字符串‘我‘的⽂件。显⽰为路径和⽂件名。
1. find | grep name
# 查⽬录
查出当前⽬录和⼦⽬录的⽂件名中含有name的⽂件
即find查出当前⽬录和⼦⽬录下的⽂件名,利⽤管道 | 交给grep过滤出含有name的那⼏⾏,间接查
linux查看当前文件夹内容出⽂件。
其中find和grep可字⾏添加所需参数
2. find | xargs grep name # 查⽂件内容
查出当前⽬录和⼦⽬录的⽂件内容中含有name的⾏
与 xargs 结合,可以传递各种选项来调整你的输出,并删除到的那些⽂件。
3. ll | grep luoluo # 查⽂件
类似find | grep luoluo,只是不能递归查⼦⽬录下的⽂件名
4.rpm -qa | grep ‘软件名‘ #查安装的软件
三、mlocate/locate ⽂件查
对于⽂件数量庞⼤的时候,可以使⽤此⽅法查
mlocate和locate 命令⼀样,下⾯就不再写locate了。⾄于mlocate和locate的关系,最后⾯会具体说⼀下。
locate命令其实是“find -name”的另⼀种写法,但是要⽐后者快得多。
Linux系统⾃动创建这个数据库,并且每天⾃动更新⼀次,所以使⽤locate命令查不到最新变动过的⽂件。为了避免这种情况,可以在使⽤locate之前,先使⽤updatedb命令,⼿动更新数据库。
1、使⽤命令
mlocate #直接搜索⽂件
mlocate ~/m # 搜索⽤户主⽬录下,所有以m开头的⽂件。
mlocate /etc/abc # 搜索etc⽬录下所有以abc开头的⽂件。
mlocate -ie #如果 已经删除了,使⽤-e会检查⽂件是否真实存在,⽽不必updatedb,-i,忽略⼤⼩写。
mlocate /etc/*abc #在/etc中查含有字符串abc的⽂件。
2、准备⼯作
先安装mlocate/locate⼯具命令,创建数据库(创建索引),然后更新数据库。
安装⼯具命令:
yum install mlocate
yum install updatedb
updatedb #updatedb更新数据库,即⽂件库。
3、整个locate/mlocate⼯作其实是由四部分组成的:
/usr/bin/updatedb #主要⽤来更新数据库,可通过crontab⾃动完成的
/usr/bin/locate #查询⽂件位置的程序(查询时是改程序运⾏,进⾏查),也可能是mlocate。
/f #updatedb的配置⽂件,⽤来配置数据库中要放⼊或排除哪些⽬录和⽂件等
/var/lib/mlocate/mlocate.db #存放⽂件信息的⽂件,⽂件名和对于的⽬录。
4、mlocate默认不搜索的⽂件:
即写⼊updatedb的配置⽂件/f的⽂件。
PRUNE_BIND_MOUNTS="yes"
PRUNEFS="ftpfs devfs mfs shfs sysfs cifs lustre_lite tmpfs usbfs udf"
PRUNENAMES=".git .bzr .hg .svn"
PRUNEPATHS="/afs /tmp /var/spool /media"
解释:
第⼀⾏ "yes":是否进⾏限制搜索。
第⼆⾏ 排除检索的⽂件系统类型。
第三⾏ 排除检索的后缀⽂件。
第四⾏ 排除检索的路径,且对路径下的⼦⽂件夹也不检索。
5、关于mlocate和locate:
mlocate有⼀个近亲:slocate,它安全地( s 代表安全)记录了相关的⽂件权限,以防⽌⾮特权⽤户看到特权⽂件。此外,还有它们所起源的⼀个更⽼的,原始 locate 命令。
mlocate与locate和slocate的不同之处在于,在每次扫描⽂件系统,更新数据库时,mlocate 不需要持续重新扫描所有的⽂件系统。mlocate 在数据库中保存了时间戳信息,⽆需重新读取,就能判断⽬录内容是否改变。所以更新的速度更快,对硬盘的占⽤也更少。
这是mlocate特有的功能。相反,它将其发现的⽂件(m代表合并)与现有的⽂件列表合并在⼀起,使其可以借助系统缓存从⽽性能更⾼、更轻量级。由于mlocate流⾏,所以也简称其为 locate。
mlocate和locate命令的⼀个关键组件,名为 updatedb,更新数据库的命令。
updatedb 通过cron任务定期运⾏,通常在⼀天中的安静时间运⾏。
在⽂件 /etc/cron. 的内部(该⽂件的路径及其内容可能因发⾏版⽽不同)。每天如何触发 “updatedb” 命令。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论