【第六章】命令与文件的查找

脚本文件的查找

连按两次Tab能看到用户有多少命令可以执行。可以通过which或type指令来看某个指令的完整文件名

which

查找执行文件

which [-a] 指令
-a 将所有PATH目录中可以找到的命令全部列出,而不止第一个被找到的命令名称

在这里插入图片描述
找which中的alias是命令别名,意思是输入which会等于后面接的那串命令在这里插入图片描述
这里找不到history指令,但是却能够执行history。因为which默认找PATH内设置的目录,而history是BASH内置的命令,所以找不到。

文件的查找

whereis

因为从一些特定的目录(可以用whereis -l确认哪些目录)中查找文件,所以比find快

where is [-bmsu] 文件/目录
-l 可以列出whereis会去查询的几个主要目录
-b 只找二进制(binary)格式的文件
-m 只找说明文件(manual)路径下的文件
-s 只找源文件(source)
-u 查找不在上述三个项目当中的其他特殊文件

在这里插入图片描述
最后加上-m查找passwd只显示man里面的文件名。

locate/updatedb
locate [-ir] 关键字
-i 忽略大小写差异
-c 不输出文件名,仅计算文件数量
-l 仅输出几行,比如-l 5输出5-S 输出locate所使用的数据库文件的相关信息,包括该数据库记录的文件/目录数量
-r 后面接正则表达式的显示方式

在这里插入图片描述
在这里插入图片描述
locate寻找的数据是由已建立的数据库/var/lib/mlocate里的数据所查找到的,而centOS7.X每天更新一边数据库,所以当我新建立起来的文件却在数据库更新之前查找该文件,那locate会告诉我不存在。使用updatedb命令可以更新数据库。

find
find [路径] [选项] [操作]
1. 与时间有关的选项:-atime,-ctime,-mtime。以-mtime举例
	-mtime n  表示在n天之前的【一天之内】被修改过内容的文件
	-mtime +n 列出在n天之前(不包含n天本身)被修改过内容的文件
	-mtime -n 列出在n天之内(含n天本身)被修改过内容的文件
	-newer file file为一个存在的文件,列出比file还新的文件
find / -mtime 0
//0代表目前的时间,这里-mtime 0表示从现在开始的24小时前

在这里插入图片描述
找出了在/etc中比/etc/passwd新的文件

2. 与使用者或用户组名称有关的参数
	-uid n n表示使用者账号ID,即UID,UID记录在/etc/passwd中
	-gid n n表示用户名称的ID,即GID,GID记录在/etc/passwd
	-user name name为使用者账号名称,比如yzq
	-group name name为用户组名称,比如users
	-nouser 查找文件的拥有者不在/etc/passwd中
	-nogroup 查找文件的拥有用户组不存在在/etc/group的文件
自行安装软件时这个软件属性中可能没有文件拥有者,这时候就用nouser或nogroup

在这里插入图片描述

3. 与文件权限及名称有关的参数
	-name filename 查找文件名称为filename的文件
	-size [+-]SIZE 查找比SIZE还大()的文件。SIZE的单位有
		c 表示Bytes  k 表示1KB  要找比50KB大的文件,使用【-size +50k】
	-type TYPE 查找文件的类型为TYPE,类型主要有:一般正规文件(f),设备文件(b、c),目录文件(d),链接文件(l)socket(s)FIFO(p)-perm mode 查找文件权限等于mode的文件,这个mode可以当作chmod里面那个属性值
	-perm -mode 查找文件囊括mode的文件,比如查找-rwxr--r--(744)的文件,也会列出-rwxr-xr-x(755)的文件,因为-rwxr-xr-x囊括了-rwxr--r--
	-perm /mode 查找包含任一mode的权限的文件,比如查找-rwxr-xr-x,也会把-rw-------列出来,因为它有-rw.....属性

找文件名为passwd的文件
在这里插入图片描述

找到/run目录下的socket文件
在这里插入图片描述
用/6000找出/usr/bin/usr/sbin下有SUID(4)和SGID(2)两个权限的文件
在这里插入图片描述

4. 额外可进行的操作
	-exec command command为其他命令,-exec后面接额外的命令来处理查找到的结果
	-print 将结果打印到屏幕上(默认操作)

在这里插入图片描述

在上面的示例中:
{}代表是由find找到的内容,find的结果会被放置到{}中
-exec一直到;是关键词,代表find额外操作开始(-exec)到结束(\;),这中间的就是find命令内的额外操作,本例中额外操作是【ls -l {}】
因为;在bash环境中有特殊意义,所以这里\是用来转义的

还可以利用通配符查找文件名
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值