Linux学习笔记__文件搜素命令
文件搜索命令find
命令名称:find|所在路径:/bin/find|执行权限:所有用户|
功能描述:
文件搜索
语法:
find [搜索范围] [匹配条件]
$ find /etc -name init //在目录/etc中查找文件init;-iname不区分大小写,精准搜索
$ find /etc -name *init* //*可匹配任意字符,该语句意思是只要包含init就会被搜索到,模糊搜索
$ find /etc -name init??? //问号匹配的是单个字符,另外Linux中严格区分大小写,如果想要不区分大小写搜索则需要用 -iname 进行查找
$ find / -size +204800 //在根目录(全盘搜索)下查找大于100MB的文件;+n 大于,-n 小于,n 等于;1k == 2个数据块,一个数据块 == 0.5k,所以100MB就是204800
$ find /home -user bakuman //在根目录下查找所有者为bakuman的文件;-group 根据所属组查找
$ find /etc -cmin -5 //在/etc目录下查找5分钟内被修改过属性的文件和目录,超过5分钟可以用+5;-amin 访问时间access;-cmin 文件属性change(权限所属组所有者等等);-mmin 文件内容 modify
find的连接选项
$ find /etc -size +163840 -a -size -204800 //在/etc下查找大于80MB小于100MB的文件;-a 两个条件同时满足,-o 两个条件满足一个即可
$find /etc -name inittab -exec ls-l{}\; //在/etc下查找inittab文件并显示其详细信息;
-exec/ok 命令 {} \; //对搜索结果执行命令操作
使用-ok会多一步询问确认的过程,而-exec就不需要询问自动执行
-type // 根据文件类型查找,可以直接在命令后面加, f 文件;d 目录;l 软链接文件
-inum //根据i节点查找
尽量减少搜索功能的使用,因该做好规划,搜索的条件越精准越好
文件搜索命令:locate
命令名称:locate|所在路径:/usr/bin/locate|执行权限:所有用户|
功能描述:
在文件资料库中查找文件
语法:
locate [文件名]
$ locate inittab
$ locate -i initTab //此时locate查找不区分大小写
如果报错,则安装locate,输入yum install mlocate,然后updatedb更新即可
假如是新建的文件,资料库中没有收录,则无法找到使用updatedb更新即可找到,如果存放在/tmp(临时文件)下面,则无法找到
locate查找速度快,节省系统资源
which
命令名称:which|所在路径:/usr/bin/which|执行权限:所有用户|
功能描述:
搜索命令所在目录及别名信息
语法:
which [命令]
$ which ls
现在LInux系统中的rm会有询问确认,但是如果输入命令的绝对路径,则不会询问路径,因为你输入的rm系统首先会去寻找的是rm的别名’rm -i’,-i这个选项就是一个询问确认的选项。如果想要知道一个命令是否存在别名,则可以使用which。
whereis
命令名称:whereis|所在路径:/usr/bin/whereis|执行权限:所有用户|
功能描述:
搜索命令所在目录及帮助文档路径
语法:
whereis [命令名称]
$ whereis ls
grep (在文件内容中找关键词)
命令名称:grep|所在路径:/bin/grep|执行权限:所有用户|
功能描述:
在文件中搜寻子串匹配的行并输出
语法:
grep -iv [指定字串] [文件]
-i 不区分大小写
-v 排除指定字符 //如果要去掉行首以#注释的注释行,则需添加尖角号^,为^#