文件查找

文件查找

1.1、which
查找可执行文件的路径

which是通过PATH环境变量到该路径内查找可执行文件,所以基本功能是寻找可执行文件(选项及参数:-a
将所有由PATH目录中可以找到的指令均列出,而不止第一个被找到的指令名称)

例如:
1.用which搜寻ifconfig这个指令的完整文件名(which -a ifconfig)
在这里插入图片描述
2.用which查找which(which -a which)
注意:另一个alias为别名
在这里插入图片描述
3.请找出cd这个指令的完整文件名(cd是内部命令)
在这里插入图片描述
1.2、locate

whereis 【参数】 文件或目录名称 参数:
-b :只找二进制文件
-m:只找在说明文件manual路径下的文件
-s :只找source源文件
-u :没有说明文档的文件

例如:
1.请用不同的身份找出ifconfig这个文档名

(注意:用which一般着找不到ifconfig文档名 用whereis可以找到)

在这里插入图片描述
2.只找出跟passwd有关的【说明文件】档名
在这里插入图片描述
3.只找出二进制文件(passwd)
在这里插入图片描述
locate(locate 文件或目录名)
参数:
-i:忽略大小写的差异
-r:后面可接正则表达式的显示方式
例如:
1、查找系统中所有与passwd相关的文件
(locate passwd)

注意:跟find相比,whereis查找的速度非常快,因为Linux系统会将系统内的所有文件都记录在一个数据库中,当时使用whereis和locate时,会从数据库中查找数据而不是像find命令那样,通过遍历硬盘来查找,效率自然会很高。(数据库并不是实时更新,默认情况下每天更新一次,因此有时候在查找时会找到刚刚被删除的或刚建立的无法找到,原因就是数据库没有被更新)

1.3find(find 路径 参数)
参数说明:
时间查找参数:
-atime n:将n24小时内存取过的文件列出来
-ctime n:将n
24小时内改变,新增的文件或者目录列出来
-mtime n::将n*24小时内修改过的文件或目录列出来
-newer file:把比file还要新的文件列出来
例如:
1、将过去系统上24小时内有改动过内容的文件列出来(find ./ -mtime 0)
注意: “.” 表示当前目录 “/” 表示根目录下的所有文件 “0”代表目前时间
‘新建一个文件aa并编辑’
在这里插入图片描述
2、查找四天内改动过的内容(find ./ -mtime -4)
在这里插入图片描述
注意:
在这里插入图片描述
在这里插入图片描述
例如:
1 查找/home底下属于John的文件
在这里插入图片描述
2 搜寻系统中不属于任何人的文件
在这里插入图片描述
3 找出档名为passwd这个档案
在这里插入图片描述
4 找出/server/scripts/所有脚本文件,即后缀为.sh(find /server/scripts -type -name “.sh”)
额外操作:
在这里插入图片描述
例如:
1、将目录/root/dir10目录中的以file开头的文件使用ls -l 列出来
在这里插入图片描述

注意:
在这里插入图片描述

2、找出系统中,大于1MB的档案
(find / -size +1000k)

在这里插入图片描述

上面的exec 也可以用xarg 来代替
在这里插入图片描述
在这里插入图片描述

练习题

1.查找/var 目录下属主为root 且 属组为mail 的所有文件或目录(find /var -user root -a -group mail -ls)
在这里插入图片描述
2、查找/usr目录下不属于root ,bin的所有文件或目录的两种方法
find /usr -not -user root -a -not -user bin -ls
find /usr -not ( -user root -o -user bin ) -ls

注意:\为转义字符
在括号里用参数-o 括号外用参数-a

在这里插入图片描述
3、查找/etc目录下最近一周内内容修改过,且属主不是root 也不是bin用户的文件或目录(find /etc -mtime -7 -a -not -user root -a -not -user bin -ls)(find /etc -mtime -7 -a -not \( -user root -o -user bin ) -ls)
4、查找当前系统上没有属主或属组,且最近一周内曾被访问过的文件或目录(find / -nouser -a -nogroup -atime -7 -ls)
在这里插入图片描述
5、查找/etc目录下大于1M且类型为普通文件的所有文件(find /etc -size +1M -type f -exec ls -l {} ;)
在这里插入图片描述
6、查找/etc目录下所有用户都没有写权限的文件(find /etc -not -perm /222 -type f -ls)
在这里插入图片描述
7、查找/etc目录下至少有一类用户没有执行权限的文件(find /etc -not -perm /111 -type f -ls)
在这里插入图片描述
8、查找/etc/init.d/目录下,所有用户都有执行权限且其他用户有写权限的所有文件(find /etc/init.d/ -perm -113 -type f -ls)
9、扩展练习:在/opt目录下创建三级文件a1 a2 a3 在a1 a2 a3 目录下分别创建文件aa1 aa2 aa3
给这三个目录底下的文件设置相同的权限666 并查看
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值