Linux查找命令which、whereis、find、locate的区别

Linux命令which、whereis、find、locate的区别

这几个命令都具有查找功能,但在具体的使用情景上具有一些差异,较好的使用他们可以在shell操作时不那么手忙脚乱。

1.which

  • which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。
  • 在使用which进行查找时,查找目标需要提前配置到环境变量中,否则查不出来。
  • 环境变量的配置,使用vim /etc/profile然后编辑profile文件即可

2.whereis

  • whereis命令只能用于程序名的搜索,如果省略参数,则返回所有信息。
  • 二进制文件(参数-b);
  • man说明文件(参数-m);
  • 源代码文件(参数-s)。

3.find

  • find是覆盖最全面的查找工具,但它在硬盘上遍历查找,非常消耗硬盘的资源,而且效率也很低,优先使用其他几个。
    find / 列出/目录和子目录下的所有文件和文件夹
    find / -name '*txt' 根据文件名或者正则表达式匹配搜索
    find / -iname '*txt' 同上,忽略大小写
    find / ! -name '*txt' 对上面的搜索结果取反
    find / -type d 根据文件类型搜索,d文件夹,f普通文件,etc
    find / -type f -size +2k 根据文件大小搜索,+2k大于2k的文件,-2k小于2k的文件,2k等于2k的文件
    find / -type f -name '*txt' -delete删除匹配到的文件

4.locate

  • 相当于find -name,但它是从数据库(/var/lib/locatedb)中查找,效率要比find高很多。
  • Linux系统自动创建locatedb,每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。

猜你喜欢

转载自blog.csdn.net/qq_34233510/article/details/87950215