海外主机测评

您现在的位置是:首页 > 数据库 > 正文

数据库

Linux下which、whereis、locate、find的区别有哪些

cds8202022-12-05数据库146
本站想和大家分享在Linux下定位和查找的不同之处。希望你看完这篇文章有所收获。大家一起讨论一下。我们经常在Linux中寻找一个文件或者命令,但是不知道放在哪里。我们可以使用以下命

本站想和大家分享在Linux下定位和查找的不同之处。希望你看完这篇文章有所收获。大家一起讨论一下。

我们经常在Linux中寻找一个文件或者命令,但是不知道放在哪里。我们可以使用以下命令进行搜索。

查看可执行文件的位置

在哪里查看文件的位置

定位配合数据库查看文件位置

“查找”实际上是在硬盘上搜索文件名

1、which

语法:哪个可执行文件名称

例如:

[root@redhat ~]#哪个passwd

/usr/bin/passwd

即通过path环境变量在PATH中查找可执行文件,所以基本功能是查找可执行文件

2、whereis

语法:哪里是[-bmsu]文件或目录名

参数描述:

-乙:只是寻找二进制文件

-m:仅查找描述文件手动路径下的文件

-s:仅查找源文件

-u:没有描述文档的文件

例如:

[root @ red hat ~]# passwd在哪里

passwd :/usr/bin/passwd/etc/passwd/usr/bin/X11/passwd/usr/share/man/man 5/passwd . 5 . gz/usr/share/man 1/passwd . 1 . gz/usr/share/man/man 1/passwd . 1 SSL . gz

找出所有与密码文件相关的文件

[root@redhat ~]# whereis -b passwd

passwd :/usr/bin/passwd/etc/passwd/usr/bin/X11/passwd

只有二进制文件被发现

与find相比,whereis的搜索速度非常快,因为linux系统将系统中的所有文件都记录在一个数据库文件中。当使用后面介绍的whereis和locate时,将从数据库中搜索数据,而不是像find命令那样遍历硬盘,效率自然会很高。

但是数据库文件不是实时更新的,默认一周更新一次。因此,当我们使用whereis和locate来搜索文件时,我们有时会找到已删除的数据,或者只是创建一个文件,但我们找不到它,因为数据库文件尚未更新。

3、 locate

语法:定位文件或目录名

例如:

[root@redhat~]#locatepasswd

/etc/passwd

/etc/passwd-

/etc/cron.daily/passwd

/etc/init/passwd.conf

/etc/init.d/passwd

/etc/pam.d/chpasswd

/etc/pam.d/passwd

/etc/security/opasswd

helliphelliphelliphellip4、 find

语法:查找路径参数

参数描述:

时间搜索参数:

-atime n :列出了在n*24小时内访问的文件

-ctime n :列出了在n*24小时内更改或添加的文件或目录

-mtime n :列出了n*24小时内修改过的文件或目录

-较新的文件:列出比文件新的文件

名称查找参数:

-gID n:查找组ID为n的文档。

-组名:查找具有组名的文档。

-uID n:查找所有者ID为n的文件。

-用户名:查找用户名为name的文件

-name file:查找名为file的文件(可以使用通配符)

例如:

[root@redhat~]#find/-namezgz

/home/zgz

/home/zgz/zgz

/home/WebLogic/bea/user _ project/domain/zgz

/home/Oracle/product/10g/cfgtoollogs/dbca/zgz

/home/Oracle/product/10g/cfgtoollogs/emca/zgz

/home/Oracle/ora data/zgz[root @ red hat ~]# find/-name ' * zgz * '

/home/zgz

/home/zgz/zgz1

/home/zgz/zgzdirzgz

/home/zgz/zgz

/home/zgz/zgzdir

/home/WebLogic/bea/user _ project/domain/zgz

/home/WebLogic/bea/user _ project/domain/zgz/zgz . log 00006

/home/WebLogic/bea/user _ project/domain/zgz/zgz . log 00002

/home/WebLogic/bea/user _ project/domain/zgz/zgz . log 00004

/home/WebLogic/bea/user _ project/domain/zgz/zgz . log

/home/WebLogic/bea/user _ project/domain/zgz/zgz . log 00008

/home/WebLogic/bea/user _ project/domain/zgz/zgz . log 00005

当我们找不到我们需要的文件时,我们可以使用find。但是Find遍历硬盘,消耗硬盘资源,效率低。因此,建议优先考虑地点和位置。

总结:

它只能查找可执行文件和别名,并在PATH变量中查找它们

其中只能查找二进制文件(包括可执行文件)、描述文档、源文件等。并从Linux文件数据库(/var/lib/slot/slot.db或/var/lib/var/lib/slot ate/slot ate . db)中查找它们,这样就有可能找到新删除的文件或找不到新文件。

在数据库中搜索Locate,数据库每天更新一次,文件名部分匹配(参见3 locate passwd: opasswd的结果)

Find最厉害,什么都能查。根据条件查找文件并在硬盘上查找效率很低

看了这篇文章,相信你对“Linux下的定位和查找哪个,在哪里,有什么区别”有一定的了解。如果您想了解更多相关知识,请关注本站,感谢您的阅读!


《Linux下which、whereis、locate、find的区别有哪些》来自互联网同行内容,若有侵权,请联系我们删除!

发表评论

评论列表

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~