3. 文件搜索命令
3.1 文件搜索:find
(1)find命令
命令名称 |
find |
命令所在路径 |
/bin/find |
执行权限 |
所有用户 |
语法 |
find [搜索范围] [-选项] [匹配条件] -name:根据文件名查找 -iname:根据文件名查找,但忽略大小写 -inum:根据i节点查找 -size [+-n]: 根据文件大小查找,+n大于,-n小于,n等于 其中n的单位:数据块(512字节,即0.5K)的大小 -amin,cmin,mmin:根据时间属性(访问access、文件属性(如权限、所有者等)change、文件内容modify)查找。后面+-时间,单位分钟,+表示大于,-表示小于。 -user、-group:根据所有者查找、所属组查找 -type:根据文类型查找,f文件、d目录、l软链接文件 -exec/-ok 命令 {} ;:这是一种格式是固定的,主要用来对搜索结果执行操作,其中-ok会询问操作。 |
(2)注意事项
①find是一种精准匹确,也就是查找的结果严格匹配条件
②如果要进行模糊匹配,要加上匹配条件可以加上*,?匹配单个字符。
③匹配条件可以用-a和-o连接,-a表示and连接、-o表示or连接
(3)应用举例
①在目录/etc中查找文件init: #find /etc –name init
②搜索/etc/下所有文件名以“init”开头的普通文件:
#find /etc –name *init -a –type f
③在根目录下查找大于80MB且小于100MB的文件:
#find / -size +163840 –a –size -204800 (100MB=204800*0.5KB)
④在根目录下查找所有者为testUser的文件: #find / -user testUser
⑤在/etc下查找5分钟内被修改过属性的文件和目录:#find /etc –cmin -5
⑥在/etc下查找inittab文件并显示其详细信息:
#find /etc -name inittab -exec ls -ld {} ;
3.2 在文件资料库中查找文件:locate
(1)locate命令
命令名称 |
locate |
命令所在路径 |
/usr/bin/locate |
执行权限 |
所有用户 |
语法 |
locate [-选项][文件名] -i:忽略大小写 |
(2)注意事项
①系统为文件建立资料库(/var/lib/mlocate/mlocate.db)并定时更新,以后直接在这个库中查找,所以查找速度快。
②locate的安装包名为mlocate(可用yum list | grep locate查看),安装方法:
yum -y install mlocate,然后执行updatedb;
③新建的文件并不会及时被收入到资料库,所以要执行updatedb。同时要注意/tmp下的文件不能被收入到资料库中。
(3)应用举例:
①查找系统中文件名为inittab的文件:$locate inittab
②查找locate这个文件本身:$locate locate
3.3 搜索命令所在目录及别名信息:which
(1)which命令
命令名称 |
which |
命令所在路径 |
/usr/bin/which |
执行权限 |
所有用户 |
语法 |
which 命令 |
(2)应用举例:
①查看rm命令是否有别名:#which rm
②查找命令及是否有别名所在目录:#which useradd
3.4 搜索命令所在目录及帮助文档路径:whereis
(1)whereis命令
命令名称 |
whereis |
命令所在路径 |
/usr/bin/whereis |
执行权限 |
所有用户 |
语法 |
whereis [命令名称] |
(2)应用举例:
①查看ls命令目录及帮助文档路径:#whereis ls
3.5 在文件中搜寻字串匹配的行并输出:grep
(1)grep命令
命令名称 |
grep(英语原义:global regular expression print) |
命令所在路径 |
/bin/grep |
执行权限 |
所有用户 |
语法 |
grep –iv [指定字串] 文件 -i:忽略大小写 -v:排除指定字串 |
(2)应用举例:
①查看安装日志中关于mysql的信息:#grep mysql /root/install.log
②查看除注释行外的文件内容:
#grep –v ^# /etc/inittab //^表示行首,#是注释的开始