linux下查找命令总结

来源:互联网 发布:淘宝改版后如何看差评 编辑:程序博客网 时间:2024/06/06 07:48

总结一下linux下查找命令:
linux下查找命令一共有  locate whereis  which  find

 

1. locate
locate 是利用一个索引进行查找,所以很多时候我们用locate查找一个文件,
明明文件就在那里,就是查不到,这是因为索引没有更新的缘故。在CentOS5.5下
索引是这个文件,/var/lib/mlocate/mlocate.db
那么什么时间更新索引呢?这个取决于crontab的配置
也可以手动更新索引,用updatedb,先看看这个例子:

[root@localhost Desktop]# mkdir abcdefghijk_cyq
[root@localhost Desktop]# dir
abcdefghijk_cyq  a.out~  b      longxibendi@126.com  readme.txt5277
a.out            a.txt   b.txt  readme.txt           SHELL
[root@localhost Desktop]# locate abcdefghijk_cyq
[root@localhost Desktop]# updatedb
[root@localhost Desktop]# locate abcdefghijk_cyq
/home/cyq/Desktop/abcdefghijk_cyq
[root@localhost Desktop]#
这个例子说明,新建立的文件夹,由于没有更新索引所以用locate不能找到,更新索引后
,就 可以找到了。更新索引的命令是updatedb
 
2.which
which 是用于查找一些命令的命令。which命令的作用是,在PATH变量指定的路径中,
搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,
就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
比如我要查找ls这个命令在哪个路径下,实际上是想知道ls在哪个环境变量下,可以这样,看看下面的例子:

[root@localhost Desktop]# which ls
alias ls='ls --color=tty'
        /bin/ls
[root@localhost Desktop]# which fg
/usr/bin/which: no fg in (/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/cyq/bin)

解释:alias 表示 ls  等同于  ls -color  ,就是别名使用。
     此外,which fg  不能找到 在 一些环境变量中
     实际上,命令就是一些可执行文件。只不过命令有内部命令和外部命令之分,内部命令不需要磁盘I解释:alias 表示 ls  等同于  ls -color  ,就是别名使用。
     此外,which fg  不能找到 在 一些环境变量中
    实际上,命令有内部命令和外部命令之分,内部命令不需要执行I/O操作,更快,外部命令则需要。

3.whereis
whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。
关于whereis  只需要看下面这个例子:

[cyq@localhost Desktop]$ whereis locate
locate: /usr/bin/locate /usr/share/man/man1/locate.1.gz
[cyq@localhost Desktop]$ which locate
/usr/bin/locate
[cyq@localhost Desktop]$

4.find
find 是最常用的,参数很多,看下面的例子:

[cyq@localhost Desktop]$ find ./ -name "abcdefghijk_cyq" -print -exec ls -la  {} /;
./abcdefghijk_cyq
总计 8
drwxr-xr-x 2 root root 4096 11-02 19:17 .
drwxr-xr-x 5 cyq  cyq  4096 11-02 19:18 ..
[cyq@localhost Desktop]$

格式是这样的:
find 路径   参数
比如上面的例子是:
查找 当前目录下  名字  匹配(是)abcdefghijk_cyq 的所有文件  并打印出来  在把找到的文件  使用  ls -la  输出
find 有很多参数  ,可以有  -type  -name  -perm  +perm   perm  -print  等等

详细的find  参看:
http://www.oracle.com/technology/global/cn/pub/articles/calish-find.html
http://www.linuxsir.org/main/?q=node/137



参考:
http://www.kuqin.com/linux/20091009/70532.html

声明:本文档可以随意更改,但必须署名原作者

作者:凤凰舞者 qq:578989855