www.138139.cn

返回总目录 上一页 目录页 下一页

Linux实用的查找技术(总结)


    本文收集了各种查找技术find , grep , locate , type , which , whereis ,whatis . 以供大家参考.











find 命令
find命令从指定的起始目录开始,递归地搜索其各个子目录,查找满足寻找条件的文件并对之采取相关的操作。





find / -name $file





该命令提供的寻找条件可以是一个用逻辑运算符not、and、or组成的复合条件。逻辑运算符and、or、not的含义为:
(1)and:逻辑与,在命令中用“-a”表示,是系统缺省的选项,表示只有当所给的条件都满足时,寻找条件才算满足。例如:
$ find –name ’tmp’ –xtype c -user ’inin’
该命令寻找三个给定条件都满足的所有文件。





(2)or:逻辑或,在命令中用“-o”表示。该运算符表示只要所给的条件中有一个满足时,寻找条件就算满足。例如:
$ find –name ’tmp’ –o –name ’mina*’
该命令查询文件名为’tmp’或是匹配’mina*’的所有文件。





(3)not:逻辑非,在命令中用“!”表示。该运算符表示查找不满足所给条件的文件。例如:
$ find ! –name ’tmp’
该命令查询文件名不是’tmp’的所有文件。





需要说明的是:当使用很多的逻辑选项时,可以用括号把这些选项括起来。为了避免Shell本身对括号引起误解,在话号前需要加转义字符“\”来去除括号的意义。





grep 命令
在命令后键入搜索的模式,再键入要搜索的文件。其中,文件名列表中也可以使用特殊字符,如“*”等,用来生成文件名列表。如果想在搜索的模式中包含有空格的字符串,可以用单引号把要搜索的模式括起来,用来表明搜索的模式是由包含空格的字符串组成。否则,Shell将把空格认为是命令行参数的定界符,而grep命令将把搜索模式中的单词解释为文件名列表中的一部分。在下面的例子中,grep命令在文件example中搜索模式“text file”。
$ grep ’text file’ example





用户可以在命令行上用Shell特殊字符来生成将要搜索的文件名列表。在下面的例子中,特殊字符“*”用来生成一个文件名列表,该列表包含当前目录下所有的文件。该命令将搜索出当前目录下所有文件中与模式匹配的行。
$ grep data *





特殊字符在搜索一组指定的文件时非常有用。例如,如果想搜索所有的C程序源文件中特定的模式,您可以用“*.c”来指定文件名列表。假设用户的 C程序中包含一些不必要的转向语句(goto语句),想要找到这些语句,可以用如下的命令来搜索并显示所有包含goto语句的代码行:
$ grep goto *.c






locate 命令





locate <string>
这个命令是在内部数据库中查找包含它们名字的文件然后输出全部文件名称,你可以通过使用grep命令过滤输出结果。举例,下面的例子查找所有包含字符”kde”并且在目录bin的文件:
locate kde | grep bin





查找的文件名不必使用全部名字;可是使用部分字符,例如使用“gno”代替“gnome”。使用参数-r选项可以使用正则表达式进行查询:
locate -r 'gno*'





需要注意的一个问题是locate命令区分大小写:查找HOWTO和howto,你会得到不同的结果。 同find命令相比较,locate命令是从数据库中查找,而不是每次搜索文件系统。因为是从数据库中查找,locate的速度远远快于find命令。但是,使用locate命令查找的结果仅仅是在当前数据库。 Locate数据库是通过cron的日任务更新,你也可以手工进行,使用updatedb命令完成(通常需要root用户)。如果在你安装新的程序或者删除旧的文件,又不希望等到下一日进行locate数据库的更新,你可以使用手工的处理完成。






type 命令
type命令可以准确的高诉你一个可找到的命令的类型和位置
如:type reboot






which 命令
which–显示命令的全路径
which reboot






whereis 命令
例如:查找ls命令在什么目录下。
$ whereis ls
ls:/bin/ls/usr/man/man1/ls.1





whatis 命令
获取帮助
最有用的命令之一是那些提供帮助的命令(特别是对那些学习 Linux 的人而言)。Linux 中的两个重要的信息来源是联机参考手册,或 man 页面和 whatis 工具。您可以用 whatis 命令来访问一个不熟悉的命令的 man 页面。





  $ whatis echo
  要了解关于这个命令的更多信息,可以使用: 址163164.cn 微信1631640 QQ3149886





  $ man echo
  如果您不知道某个特殊任务所需的命令,您可以用 man -k (也称为 apropos)和一个主题来生成可能的命令。例如: 址163164.cn 微信1631640 QQ3149886





  $ man -k files
  一个很有用但常常被忽视的命令可以提供关于使用 man 本身的信息:

址163164.cn 微信1631640 QQ3149886

返回总目录 上一页 目录页 下一页