文件搜索locate
centos7缺省情况下不安装locate命令,必须手动安装yum -y install mlocate
locate命令的格式非常简单:locate文件名
具有检索速度非常快,只能检索文件名的特点,维护着本地的数据库。
要更新存储在/var/lib/mlocate文件中的数据库,请使用updatedb命令
本地数据库自动更新策略每天都更新,因此无法搜索当天新创建的文件。 必须手动更新数据库
locate搜索范围配置文件为/etc/updatedb.conf
#表示此配置文件的检查规则有效
PRUNE_BIND_MOUNTS='yes '
#不选择以下文件系统(linux为ext2、ext3、ext4) ) )。
prune fs='9pafsanon _ inodefsautofsbdevdrdbgfmt _ misccgroupcifsconfigfscpusetdebugfsdevptsecryptfsexofsefuse.sgf 2 lustremqueuencpfsnfs4nfsdpipefsprocramfsrootfsrpc _ pipefssecurityfsselinuxfssssoccus fstmpfsubifsudfusbfse.glusterfscerfsefscefsettttttttefspc
#不搜索包含以下关键字的文件
PRUNENAMES='.git .hg .svn '
#不在以下目录中查找更新的文件
prune paths='/AFS/media/mnt/net/SFS/tmp/udev/var/cache/ccache/var/lib/yum/Yu MDB/var/spool/car
查找命令命令
whereis
也可以查询包含系统命令的文件夹目录,并确认帮助文档的位置
$ whereis ls
/drdbg/ls
which
查询系统所在的命令,并显示系统别名
$ which ls
ls: aliased to ls -G
路径
shell变量,运行命令时,在此环境变量下查找变量
aliFE echo $PATH
/usr/local/dr dbg :/usr/dr dbg :/dr dbg :/SDR dbg :/SDR dbg 3360/applications/wireshark.app
查找
与以前的locate、whereis、which和find命令相比功能非常强大。 但是,结果,使用起来很复杂。 因为要进行全文检索,所以检索速度慢,消耗资源。 如果是在线环境,在线服务可能会关闭。
使用方法是: find [检索范围] [检索条件]
-name搜索文件
find/-name proxy.sh
这句话的意思是在根路径/下搜索名为proxy.sh的文件。
模糊匹配
要进行模糊搜索,必须使用通配符
linux通配符
*匹配任何字符
? 匹配一个字符
[]匹配大括号中的任何字符
通配符必须用引号引起来
必须用引号括起来
[ root @ izbp 1ge7STK cnj 5044 OA 81 z~] # find./-name proxy *
find : pathsmustprecedeexpression 3360 proxy.sh2
[ root @ izbp 1ge7STK cnj 5044 OA 81 z~] # find./-name ' proxy * '
./proxy.sh
./proxy.sh2
大括号[]
大括号与正则的[]含义相似。 例如,[a-z]表示任意小写的英语字符
[ root @ izbp 1ge7STK cnj 5044 OA 81 z~] # find./-name ' [ a-z ].sh '
./a.sh
./b.sh
按时间搜索
find /root -iname proxy.sh
mtime修改文件的内容
您可以查找10天前修改的文件,并将其用于搜索日志文件。
find /root-mtime 10
-10表示10天内修改的文件
10表示第10天当天修正的文件
10表示10天前修改的文件
更改ctime文件的属性
更改访问atime文件的时间
按文件大小搜索
find ./size 25k
-25k小于25k
25k大于25k
25M大于25M
-25M小于25M
逻辑命令
-a and逻辑与,满足两个条件
-o or逻辑或两个条件满足一个即可
#找到当前文件大于5k且小于25k的文件
find ./-size 5k -a -size -25k
-exec
查找命令不仅需要一般性查看,还需要进一步操作。 此时,将显示exec的作用
-exec参数后跟command命令,表示: 用于结束标志的。 仔细想想; 不同的系统有不同的含义,请在之前
#表示以前找到的文件,用后面的命令处理
find.//- size 5k-a-size-25k-execls-LH { };
其他
-i搜索不区分大小写
grep
用于搜索字符串的命令。 grep[选项]字符串文件名格式
I忽略大小写
v忽略指定的字符串
[ root @ izbp 1ge7STK cnj 5044 OA 81 z~] # grep ' echo ' proxy.sh
echo 'hello dankun '
echo '=====restart squid====='
grep和find的区别
查找将在系统中查找满足条件的文件名。 默认为全文匹配。 需要模糊匹配时使用通配符。 通配符完全一致。
正则表达式用于在文件中查找匹配字符串。 缺省值为模糊匹配,如果需要包含更多匹配项,则必须使用正则表达式进行匹配。
使用通配符和使用正则表达式时
必须搜索文件名,使其完全匹配,并使用通配符
搜索文件的内容包含匹配项,并使用正则表达式进行匹配