Linux下的查找命令

find、locate、which

前两个是查找文件的,后面一个是针对命令的。

which只能查找命令的位置,可以用于做u+s提权,卸载某命令,做新的环境变量配置等等

里面可以看见的是命令是否别名,位置。

如果不使用别名,我们可以用\加上命令,就是执行命令本身。

先说说locate和find的区别:

1、locate是查找数据库里面的数据,速度比find快,但是数据可能不准确,因为数据库里面的内容,数据库不会实时更新,数据库在/var/lib/mlocate/mlocate.db里面,如果我们现在删除掉一个文件或者新建掉一个文件,用locate查找是不准确的,如果坚持用locate查找,应该先用updatedb,更新数据到数据库里面

 

locate并不能实时查找到,而是要通过做的缓存来查找。

而find就可以实时查找到,是因为find是遍历一次文件

 

2、locate操作比较少,没有find操作多,功能不够find强大。

 

一、locate

 

查找etc下以sh开头的文件

 

 

locate也可以使用通配符*

 

 

-i是不区分大小写

 

 

locate 感觉是不能用来查找在tmp下的文件或者目录,可能tmp下的东西不会写进数据库里面

 

二、find

 

find涉及 的操作就比较多,除了查找还可以在查找完之后做一系列操作,还可以多条件的筛选

 

 

1、按时间查找       -mtime

假如我们查找24小时内被修改过的文件可以用

 

!!在非root下用这个命令会出现权限问题

 

 

-mtime +n :列出在 n 天之前(不含 n 天本身)被更改的文件;

后面可以接上操作

-mtime -n :列出在 n 天之內(含 n 天本身)被更改过的文件;

可以看见我刚刚创建的File1文件~

 

2、按文件名找文件

find和locate有点不同 的是

locate可以打头字母寻找文件,而 find不可以,如果想这样只能使用通配符*

– iname 可以不区别大小写

3、按属主属组查找

-user与-group

 

如果是-group 和-user一起用,一定要都匹配上才会找到文件,是与操作,不是或操作

 


 

 

-nouser 不属于任何人的文件

 

 

一些被删除的用户会遗留下属于他们的文件或者是进程文件

 

4、按大小找、按文件名字找

 

-size

-name

如果找不到就不显示出来

 

-size

如果不输入单位,默认是k

 

查找四舍五入是4k的文件

 

四舍五入是4M的文件

 

大于4M的文件

小于1k的

 

5、按文件类型找

d目录文件

f 普通文件

b 是块设备文件、c 字符设备、s 套接字、p 管道以此类推

 

查看并打印某个目录的普通文件:

 

6、按文件权限

-perm

 

7、深度 -maxdepth

 

 

0 是目前那个目录文件,1是文件下一个深度,2 是可以再看多一个深度,以此类推

 

7、find后面可以加的操作

-print   -ls   -delete    (-exec -ok)   后面接shell命令

 

 find /tmp/ -type f -exec cat {} \; 可以用于查看某目录下的文件


 

发现生效了,而且并没有区别,说明复制成功了!

 

-ok和-exec的区别是有没有交互,交互会每一个文件都询问。安全性会比较高~

exec现在可以用xargs替代,两者的区别是exec选项是找到一个操作一次,可能会造成内存不够,而xargs是找完了,用管道传过去,进行操作(对于小文件两个都差不多,对于大的文件推荐使用xargs)

 

!!与或非操作

 

查找/etc 下的非 目录文件并且叫passwd的文件

(非和与操作)

或操作

 

! -type d 表示非目录    ! -type f表示非普通文件 等等

直接执行命令比用find再用命令要快

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值