在linux操作系统里,我们经常会需要知道哪个文件放在哪里,才能够对文件进行一些修改和维护工作。所以对查找命令的掌握就是必须的了。
which(寻找”执行文件“):
命令格式:which [-a] command
例如:which ipconfig 或 which which,这样就能查找到ipconfig命令和which命令放在了哪个目录下。但是这个命令不能找到cd命令,因为cd是bash内置的命令。但是可以用type这个命令。
whereis(寻找特定文件):
命令格式:whereis [-bmsu] filename/directoryname
参数:
-b:只找二进制格式的文件
-m:只找说明文件manual路径下的文件
-s:只找source源文件
-u:查找不在上述三个选项的其他文件
例如:whereis ipconfjg。
locate:
命令格式:locate [-ir] keyword
参数:
-i:忽略大小写的差异
-r:后面可接正则表达式的显示方式
例如:locate passwd,值得说明的一点是:locate命令可以在后面输入文件的部分名称。locate的查询速度相当的快,并且只占用很少的资源,因为locate是在数据库上做查询的,而并非硬盘。但是同时还有一个缺点就是locate命令查询的结果不一定是准确的,因为这个数据库默认是一天更新一次,如果你刚刚创建一个文件,马上就对它进行一次locate,那么就会找不到这个文件。解决这个问题的方法就是使用updatedb命令,对数据库进行强制更新,所以,问题迎刃而解啦!
find:
命令格式:find [path] [option] [action]
参数巨多,这里就不一一列举了。
find命令是linux里功能最强大的命令,远远比whereis和locate强大得多,但是但是,这个命令确是最不常用的一个,原因就是find是在硬盘上进行查找,时间空间的开销会很大,这显然不是我们所期望的,所以find的用处仅仅是在locate和whereis做不到的地方。
grep(在指定的文件中查找字符串):
命令格式:grep ‘查找的字符串’ filename
参数:
-a:将binary文件以text文件的方式进行查找
-c:计算找到查找字符串的次数
-i: 忽略大小写的不同
-n:顺便输出行号
-v:反向选取
例如:grep -i mystring myfile,grep是一个很强大的命令,支持的语法很多,可以用在正则表达式里。
综上,其实我们日常用到最多的命令还是locate,简单高效,对不同命令的掌握还需要多多练习,才能体会其中的不同与奥秘,Let's work hard together!!!