一、简介查找文件的几个命令:

1、which :查找可执行文件的位置

2、whereis:查找文件的位置,可以找到可执行命令和man page

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

4、find:实际搜索磁盘查找文件位置

注意:find是在磁盘上遍历查找的,很消耗资源,应优先使用whereis和locate命令。

二、区别:

1、which:它是在PATH变量指定的路径中查找指定的文件,并返回第一个搜索结果。即通过which命令,可以查看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

注意:

(1)、通常只会显示找到的第一个文件。如果想显示所有PATH目录下存在的文件,可以通过参数-a实现,例如# which -a grep

(2)、只能查找可执行文件,普通文件即使在$PATH中也查找不到。

(3)、由于which是在$PATH环境变量里搜寻文件名的,不同用户设置的环境变量不同情况下,搜索结果也不相同。可以通过 echo $PATH命令查看当前的环境变量

2、whereis:它和locate都是从数据库中查找数据的,因此速度很快。

说明:Linux系统默认将系统内的所有文件都记录在数据库文件 /var/lib/mlocate/mlocate.db 中,但是这个数据库不是实时更新的,为避免查找已经删除的数据或无法查找新建立的文件等情况,可以在查找之前先用updatedb命令生成最新索引库。

注意:

(1)、whereis只能用于程序名的搜索,搜索范围比which大,当有些指令用which找不到时,可以用whereis查找。

(2)、可以迅速查找文件,而且可以提供这个文件的二进制可执行文件、源代码文件和使用手册页存放的位置。如果省略参数,则会返回所有信息。

(3)、如果找不到查找目标,会返回一个空字符串。

3、locate:和whereis差不多,是从数据库中查找数据,但是locate可以搜寻到包含文件名的所有文件,因此当只记得一部分文件名时,可以使用此命令搜寻。

注意:可以使用-i参数,忽略大小写

4、find:从磁盘上查找数据,速度比较慢,但是功能非常强大,通过不同参数可以获得不同结果。find命令后面还可以同时接多个目录,用于同时在不同目录下查找文件。

三、find使用方法

1、名称、类型相关的参数

-name 参数可以指定要查找的文件名

-type   参数可以指定要查找的文件类型,主要包括:普通文件(f)、块设备文件(b)、字符设备文件(c)、目录(d)、链接文件(l)、socket(s)、及FIFO(p)等。

例如:查找/bin目录下名称为bash的普通文件

[root@localhost ~]# find /bin -name bash -type f

/bin/bash

2、时间相关参数

与时间查找相关的参数主要包括以下几个:

(1)、-atime n:将nX24小时内存取过的文件列出来。

(2)、-ctime n:将nX24小时内改变、新增的文件或目录列出来。

(3)、-mtime n:将nX24小时内修改过的文件或目录列出来

(4)、-newer file:把比file还要新的文件列出来

说明:

n为代表天数的数字,+n表示查询第n天之前,-n表示查询从第n天(包括第n天)至今的文件。

例如:

在/usr/bin目录下查找建立不到1天的新文件,或24小时内修改过的文件

[root@localhost ~]# find /usr/bin/ -type f -mtime -1

在/bin目录中查找最近100天没有使用过的程序

[root@localhost ~]# find /bin/ -type f -atime +100

在/root目录中查找3天之前(不包括第3天)被更改的文件

[root@localhost ~]# find /root/ -type f -mtime 3

3、使用者相关的参数

与使用者或组名相关的参数包括以下几个:

(1)、-uid n: n为数字,指用户账户ID,即UID

(2)、-gid n:n为数字,指组名ID,即GID

(3)、-user name:name为用户名

(4)、-group name:name为组名

(5)、-nouser:寻找文件的所属用户不存在的文件

(6)、-nogroup:寻找文件的所属组不存在的文件

当自行安装软件是,可能该软件的属性中没有文件的拥有者,此时就可以用-nouser和nogroup来查找

例如:

4、大小、权限相关参数

与文件大小及权限相关的参数主要包括以下几个:

(1)、-size  +/-  c/k :搜索大于或小于指定大小的文件,+表大于,c表byte,k表kbyte,M表Mbyte,G代表Gbyte

(2)、-perm mode:搜寻权限等于指定权限的文件

(3)、-perm -mode:搜寻包含权限

(4)、-perm +mode:搜寻被指定查找条件所包含的文件

注意:当用权限相关参数进行查找时,存在包含关系

例1:查找权限为-rwxr--r--即0744的文件,可以使用-perm -0744,但是属性为-rwsr-xr-x即4755的文件也会被列出来,因为-rwsr-xr-x的属性已经包括了-rwxr--r--的属性了。

例2:查找权限为-rwxr-xr-x即0755的文件,可以使用-perm +755,但是属性为-rw------的文件也会被列出来,因为它有-rw...的属性存在。

例3:在/home下寻找一个包含特殊权限的文件,可以使用-perm +700来实现,因为7表4(suid) + 2(sgid) + 1(sbit),三个特殊权限全部包含进来了,而+7000的含义在与只要文件中有4,2,1中的任何一个,就会列出来,因此这个指令可以列出所有特殊权限的文件

5、执行动作

通过find命令可以对查找到的结果进一步处理,只要在-exec后面再接额外的指令即可。

例如:用ls形式显示find所查询的结果ru

# find ./ -name 'file*' -exec ls -l {} ;

这里:-exec表示后面还可以接额外的命令,{}表示exec前面的find部分查找结果,;表exec所接额外命令的结束,而exec表额外命令的开始。这里其实是执行ls -l {},即将find的结果以ls -l输出

注意:exec后面不能接别名alias,如不能使用ll命令代表ls -l

参考书目:《Linux系统直通车》电子工业出版社 刘明 蔡娜编著(第五章P82-p85)

linux命令查bin中所有变量名,Linux--文件查找命令相关推荐

  1. linux 下which、whereis、locate、find文件查找命令的区别[ZT]

    我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索.这些是从网上找到的资料,因为有时很长时间不会用到,当要用的时候经常弄混了,所以放到这里方便使用. which    ...

  2. 【Linux】19.Linux环境变量名LD_LIBRARY_PATH 和 ldd命令详解

    Linux环境变量名LD_LIBRARY_PATH 和 ldd命令详解 参考链接: https://www.jianshu.com/p/a62e1d327023 LD_LIBRARY_PATH中的LD ...

  3. Linux下sed命令替换配置文件中某个变量的值(改变包含字符的一行的值)之二——只改变第一出现的那一行

    一.背景 在之前的文章中有介绍过<Linux下sed命令替换配置文件中某个变量的值(改变包含字符的一行的值)> 但是这种方法存在一定的问题,就是假如某个变量在一个文件中出现两次,却只想更改 ...

  4. linux中文件查找命令

    1.find 最强大的查找命令,可以查找任何文件:命令格式如下: find <指定目录> <指定条件> <指定动作> - <指定目录>: 所要搜索的目录 ...

  5. TensorFlow中查看checkpoint文件中的变量名和对应值

    在加载模型时, 需要知道checkpoint中变量名称,一下代码可以查看TensorFlow中checkpoint文件中的变量名: #!/usr/bin/env python # -*- coding ...

  6. python合法的变量名有哪些_中国大学MOOC: 以下不是Python中合法变量名的是______。...

    中国大学MOOC: 以下不是Python中合法变量名的是______. 答:5MyGod "32位微型计算机"中的32指的是( ) 答:机器字长 以下是细胞因子治疗肿瘤的特点的是: ...

  7. python中合法变量名_python中的合法变量名有什么规则

    python中合法变量名的规则有:1.可以由字母.数字.下划线组成,同时,不能以数字开头:2.不能是python关键字,但可以包含关键字:3.不能包含空格.例如:[a1c_x2z]. Python 需 ...

  8. 【Notes8】Linux开发环境,Linux命令,vi命令,/正则,Hash,iNode,文件查找与读取,Linux开机自启动

    文章目录 1.VMware和CentOS安装:两个网络适配器是虚拟机的,Linux抄袭unix,Mac os是unix的皮肤 2.CRT安装:netstat -nal | grep 22,改注册信息要 ...

  9. 【Note4】网络,并发/IO,内存,linux/vi命令,正则,Hash,iNode,文件查找与读取

    文章目录 1.局域网:CSMA/CD 2.互联网:ARP,DHCP,NAT 3.TCP协议:telnet,tcpdump,syn/accept队列 4.HTTPS协议:摘要(sha.md5.crc). ...

  10. linux进入文件全文搜索命令,Linux 文件查找命令详解

    大家好,我是"孤云幕雨":祝大家中秋快乐,今天给大家带来的是<Linux文件查找命令> 一.locate:依赖于事先构建的索引 v依赖于事先构建的索引:索引的构建是在系 ...

最新文章

  1. 【OPENGL】第三篇 着色器基础(一)
  2. RobotStudio Smart组件创建动态夹具
  3. 没有桌面体验功能就不能进行图片打印
  4. 微服务高可用之熔断器实现原理与 Golang 实践
  5. oracle:oracle基础知识(二)
  6. 围观人类弹琴后,Facebook的AI学会了假装演奏
  7. Windows python3.6 安装 gevent库
  8. SqlServer2008 R2 自动备份和自动清除过期备份
  9. 极光IM简单代码(代码比较清晰)
  10. html音乐播放器收起展开代码,JS模拟酷狗音乐播放器收缩折叠关闭效果代码
  11. 嵌入式单片机知识点汇总(持续更)
  12. HttpClient发送请求时动态替换目标ip
  13. Python批量自动下载获取图片
  14. 【C++设计模式】Singleton 单例设计模式与线程安全
  15. java 中的网络编程(Socket、TCP三次握手四次挥手、TCP/UDP/URL)
  16. 微信H5端网页授权流程(在H5中的openid获取,网页绑定微信)
  17. ios- 地图路线规划
  18. 如何设计一个积分领取系统
  19. scipy.optimize.minimize 的优化算法(1): Nelder–Mead Simplex
  20. python手机app开发_在手机上用python开发APP

热门文章

  1. SpringMVC相关
  2. 2013第44周日小结
  3. ip_conntrack 模块的作用
  4. Kibana饼图介绍
  5. C语言中register类型变量
  6. [spring] 源码简析 如何解决循环依赖?
  7. 全国医疗机构勒索病毒事件公告:阿里云发布公益行动
  8. WAIT numslaves timeout
  9. EXT.NET GridPanel默认选中多行
  10. 深企在VR硬件领域获多项突破