Linux下which、whereis、locate、find的区别有哪些
本站想和大家分享在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的区别有哪些》来自互联网同行内容,若有侵权,请联系我们删除!
相关文章
发表评论
评论列表
- 这篇文章还没有收到评论,赶紧来抢沙发吧~