Linux下4个查找命令which、whereis、locate、find的总结

Linux下4个查找命令which、whereis、locate、find的总结

2023年7月26日发(作者:)

Linux下4个查找命令which、whereis、locate、find的总结本⼈是Linux的初学者,由于在使⽤Linux的过程中经常受到各种相似命令⼯具使⽤的困扰,遂萌⽣写此总结。Linux下查找相关命令主要有以下4个:which、whereis、locate、find。(1)which [-a] cmdname1 cmdname2 ...... 作⽤:locate a command,从环境变量PATH中,定位/返回与指定名字相匹配的可执⾏⽂件所在的路径 原理:执⾏which命令时,which会在当前环境变量PATH中依次寻找能够匹配所找命令名字的可执⾏⽂件名,不加-a选项,返回第⼀个匹配的可执⾏⽂件的路径,否则依 次返回满⾜条件的所有可执⾏⽂件的路径名。 适⽤场合:⼀般⽤于查找命令/可执⾏⽂件所在的路径。有时候可能在多个路径下存在相同的命令,该命令可⽤于查找当前所执⾏的命令到底是哪⼀个位置处的命令。

(2)whereis [-bmsu] filename1 filename2 ....... 作⽤:locate the binary, source, and manual page files for a command.即:定位/返回与指定名字匹配的⼆进制⽂件、源⽂件和帮助⼿册⽂件所在的路径。 原理:whereis命令⾸先会去掉filename中的前缀空格和以.开头的任何字符,然后再在数据库(var/lib/slocate/)中查找与上述处理后的filename相匹配的⼆进 制⽂件、源⽂件和帮助⼿册⽂件,使⽤之前可以使⽤updatedb命令⼿动更新数据库。 适⽤场合:⼆进制⽂件、源⽂件和帮助⼿册⽂件路径的查找。

(3)locate [option] filename1 filename2 ...... 作⽤:find files by name from one or more databases prepared by updatedb. 同whereis指令⼀样,也是从数据库建⽴的索引中查找,不同的是该命令查找所有部分匹配的⽂件,使⽤之前可以使⽤updatedb命令⼿动更新数据库。 原理:默认情况下(当filename中不包含通配符*),locate会给出所有与*filename*相匹配的⽂件的路径。 适⽤场合:没有⽂件类型性质的模糊查找(你只记得某个⽂件的部分名称)。

(4)find [option] [path1 path2 ......] [filename] 参数说明: 时间查找参数: -atime n: 将n*24⼩时内access过的⽂件列出来 -ctime n: 将n*24⼩时内状态发⽣改变的⽂件列出来 -mtime n: 将n*24⼩时内被修改过的⽂件列出来 -newer file: 把⽐file还要新的⽂件列出来 名称查找参数: -gid n: 寻找群组ID为n的⽂件 -group name: 寻找群组名称为name的⽂件 -uid n: 寻找拥有者ID为n的⽂件 -user name: 寻找拥有者名称为name的⽂件 -name file: 寻找⽂件名为file的⽂件(可以使⽤通配符) 作⽤:search for files in a directory hierarchy. 从当前⽬录递归的搜索⽂件。 原理:遍历当前⼯作⽬录及其⼦⽬录,find命令是在硬盘上遍历查找,⾮常耗硬盘资源,查找效率相⽐whereis和locate较低。 适⽤场合:能⽤which、whereis和locate的时候尽量不要⽤find.

4个命令的⽐较如下表所⽰:

发布者:admin,转转请注明出处:http://www.yc00.com/web/1690360904a337763.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信