其他文件查找命令:
1.locate:在文件资料库中查找文件
locate 文件名(直接跟上文件名就可以查找文件)
locate struggle:查找文件struggle
在Linux系统中,有一个定期维护的文件资料库,系统里所有的文件都会被定期收录到文件资料库中,使用locate查找文件时,locate直接查找文件资料库,因此查找的速度就很快。
可以使用 locate locate查看文件资料库。同时locate还有几个缺点,当新建一个文件时,使用locate命令查不到该文件,原因是系统还没有更新文件资料库,因此找不到该新建文件,你可以使用update手动更新。其次,当文件是在/tmp目录下创建的,使用locate命令也查找不到新建的文件,原因是:存放临时文件的目录/tmp并不在文件资料库的收录范围内,因此使用locate是不能查找到该目录下/tmp新建的文件的。
使用locate locate 查看文件资料库
新建一个文件,使用locate查看,在使用update更新文件资料库,在使用locate查看
在目录/tmp下创建文件,使用locat 查找,发现查找不了
使用locate查找文件,不区分大小写 locate -i 文件名(Linux中严格区分大小写)
2.which:搜索命令所在目录及其别名信息
which 命令
which是相对更精确的查找命令,比如查找的文件是一个命令(可执行文件),使用which就可以精准的查找到该命令的目录(命令所在位置的据对路径)。
在Linux中,命令是以二进制的文件存储的,存储于bin和sbin下,bin下的命令所有用户都能执行,而sbin下的命令只能管理员root才能执行。
3.whereis:搜索命令所在目录及其帮助文档路径
whereis [命令名称]
4.grep:在文件中搜寻字符串匹配行并显示
-i 不区分大小写
-v 排除指定字符串
grep在文件内容中进行查找,把想要查找的包含关键词的那一行显示出来。
使用参数 -i ,查找时不区分关键词的大小写
grep -i 关键词 文件的据绝对路径
grep -i right /root/test/hello.txt
查找文件hello.txt内容中包含right的行并显示(不区分大小写)
排除指定字符串
grep -v today is sunny sunny
当我们看一个文件时,若注释的内容很多,我们只想查看没有注释的内容。既可以用方向查找的思想 -v 来实现。
先准备数据:
grep -v ^# 文件绝对路径
grep -v ^# /root/test/sunny
^# 把以#开头的行排除
你可能想把包含#的行去掉,但是这样是执行失败的
如文本内容中的 today is sunny # the weather condition ,若grep -v # sunny执行成功,那么意味着这一行数据也要被删除,但实际上,这一行数据对我们是有用的,该行后的数据#the weather condition是对today is sunny的解释说明,并不意味着这一行数据都是注释,因此grep -v # sunny是不能执行成功的。
把参数-i,-v连接起来用
grep -iv today sunny
把文件sunny里包含today大小写的关键词排除,并显示剩余的内容