which       查看可执行文件的位置

whereis    查看文件的位置​

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

find          实际搜寻硬盘查询文件名称 (find也可以根据文件大小-size 时间-atime 正则表达式-regex)

1、which

  • 语法:

[root @redhat~]# which 可执行文件名称

例如:  [root @redhat~]# which passwd

/usr/bin/passwd

which是通过 PATH环境变量 到该路径内查找可执行文件,所以基本的功能是寻找可执行文件

2、whereis​

语法:  [root @redhat~]# whereis [-bmsu] 文件或者目录名称

参数说 明:  -b   定位可执行文件。

-m   定位帮助文件。

-s   定位源代码文件。

-u   搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。

和find相比,whereis查找的速度非常快,这是因为linux系统会将系统内的所有文件都记录在一个 数据库文件​中,当使用whereis和locate时,会从数据库中查找数据,而不是像find命令那样,通过遍历硬盘来查找,效率自然会很高。

但是 该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。  ​

3、locate

我个人感觉locate和whereis差不多,locate比较适合与数据库一起配合着用,locate命令可以在搜寻数据库时快速找到档案,数据库由updatedb程序来更新,updatedb是由cron daemon周期性建立的,locate命令在搜寻数据库时比由整个由硬盘资料来搜寻资料来得快,但较差劲的是locate所找到的档案若是最近才建立或 刚更名的,可能会找不到,在内定值中,updatedb每天会跑一次,可以手动更新updatedb来更准确的运行locate命令。

4、find

语法:

[root@redhat ~]# find 路径 参数

参 数说明:

时间查找参数:

-atime n :将n*24小时内存取过的的文件列出来

-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的文件(可以使用通配符)

当我们用whereis和locate无法查找到我们需要的文件时,可以使用find,但是find是在硬盘上遍历查找,因此非常消耗硬盘的资源,而且效率也非常低,因此建议大家优先使用whereis和locate。

locate 是在数据库里查找,数据库大至每天更新一次。

whereis 可以找到可执行命令和man page  find 就是根据条件查找文件。

which 可以找到可执行文件和别名(alias) 。

总结:

find,遍历硬盘查找,通常使用 find / -name Filename。耗内存。locate和whereis是根据数据库查找,无法实时查找文件。有可能找到刚才删除的文件和无法找到新增的文件。which根据path找可执行文件。whereis 可以用来找相关安装路径和二进制文件,可执行文件。

Linux下which、whereis、locate、find命令的区别相关推荐

  1. linux命令grep和find怎么用,Linux下find和grep常用命令及区别介绍

    在使用linux时,经常需要进行文件查找.其中查找的命令主要有find和grep.两个命令是有区别的. 区别: (1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空 ...

  2. Linux系统下which, whereis, locate的用法

    Linux系统下可以通过which, whereis, locate等命令来查找文件.程序的所在位置. 1 which 通过which命令查找可执行文件/命令的位置,比如 $ which ls 查找l ...

  3. Linux下常见的文本处理命令

    众所周知,在Linux下"一切皆文件"的原则,一切配置文件都可以以文本的方式进行编辑.存储.故对文本文件的操作能力,决定着你是否能够在Linux下操纵自如.今天,就写下几个关于Li ...

  4. (转载)linux下的find文件查找命令与grep文件内容查找命令

    linux下的find文件查找命令与grep文件内容查找命令 转载于和感谢:linux下的find文件查找命令与grep文件内容查找命令 目录 1.前言 1.1 find命令和grep命令的区别 2. ...

  5. linux下挂载和卸载的命令的用法:mount 、umount

    linux下挂载和卸载的命令的用法:mount .umount 将Windows C:盘(hda1)安装在Linux文件系统的/winsys目录下, 命令是:mount /dev/had1 /wins ...

  6. linux为什么用tar压缩,linux下tar压缩和解压命令用法详解

    linux下tar压缩和解压命令用法详解 2017-03-25 14:06 分享人:老牛 将/usr/local/test目录下所有文件仅打包,不压缩到 /usr/local/auto_bak/目下 ...

  7. linux如何在a休息时运行b,Linux下如何优雅地修正命令?

    原标题:Linux下如何优雅地修正命令? 来源:公众号[编程珠玑] 作者:守望先生 ID:shouwangxiansheng 如何快速纠正你的linux命令?我们在输入命令的时候,难免会出现输入命令错 ...

  8. linux常用调试,linux下gdb常用的调试命令

    用gdb调试程序时,常常很困惑一些命令的使用,要么是不知道这个命令,要么忘了命令的使用方法.接下来是小编为大家收集的linux下gdb常用的调试命令,希望能帮到大家. linux下gdb常用的调试命令 ...

  9. linux 更新软件命令 失败,对linux下软件(库)的更新命令详解

    在ubuntu服务器下安装包的时候,经常会用到sudo apt-get install 包名 或 sudo pip install 包名,那么两者有什么区别呢? 1.区别 pip用来安装来自PyPI( ...

  10. Linux下几种文件传输命令 sz rz sftp scp

    vbs自动启动程序 64位系统编译的程序,在32位系统中运行会有问题 Linux下几种文件传输命令 sz rz sftp scp 2011-10-28 16:08:47|  分类: 默认分类 |  标 ...

最新文章

  1. Linux 终端推荐 Terminator
  2. 大掌柜商业管理系统服务器地址,大掌柜软件通用版操作说明.doc
  3. 客户流失预警模型-GBDT模型
  4. Tips——RN webview如何实现首次加载自动登录及后续定时登录
  5. 10种增强脑力的办法
  6. Javascript实现的2048
  7. php 中抽象类的作用,解释PHP中的抽象类。
  8. golang之正则校验(验证某字符串是否符合正则表达式)
  9. Online Classification
  10. 计算机网络基础(二)
  11. JavaScript读取JSON文件
  12. 语言(文化)代码与国家地区对照表,各国手机号正则
  13. Three.js学习笔记①---搭建本地three.js官网(来自B站老陈视频)
  14. layer使用心得3
  15. Spark处理数据倾斜问题
  16. matlab生成特定矩阵
  17. ACM程序设计书中题目--J(大写字母的更替)
  18. 初始圈的选择matlab,基于MATLAB的最优算法案例分析——关于徐州潘安湖风景区游览路线设计...
  19. PCI-E 1X金手指封装
  20. 一文盘点NeurIPS'22杰出论文亮点!英伟达AI大佬一句话总结每篇重点,一并看透今年技术趋势...

热门文章

  1. java jmx连接_使用JMX连接JVM
  2. python 各种包下载大全网址
  3. 个人散户如何参与程序化交易?
  4. 游戏推箱子(c语言)
  5. html5页面跳转方式,H5页面跳转的交互设计方法
  6. 【DP】NOI题库 6049买书 4976硬币
  7. mysql utf8mb4 大小写_utf8mb4的大小写敏感性测试及其修改方法
  8. Python:计算两个日期之间的天数
  9. 全国问政效能排行榜出炉,看看你的城市排第几?
  10. linux更换包管理工具,技术|5 个给 Linux 新手的最佳包管理器