linux-文件查找-find命令-学习总结


find命令,find命令非常非常多,看的真是让人眼花缭乱,那么就按照自己的疑惑来思考问题,这样,凌乱的命令也许会有一些头绪。

1.find命令是用来干什么的

find命令主要用来查找文件的,就是在linux系统中,茫茫的文件中,找到我们的目标文件。

2.find命令怎么查找文件的底层逻辑

find命令查找文件,就是根据属性来查找的,一个就是文件的名称(包括路径中的名称),既然是名称,第一反应就是正则表达式,可以用正则表达式来进行匹配。二是通过文件的其它属性,比如文件属主,文件权限,文件大小,文件时间(创建,最后访问,最后内容修改,最后文件属性修改)
所以find命令查找文件的唯一依据就是文件属性,所以对于文件的属性,可以参考另外一篇文章,linux-文件属性-学习总结

3.find命令查找到文件后,我们还能对文件干什么

find命令找到的文件,我们还能进行动作,加入其它linux系统命令,比如删除,改名,查看内容 ,比如拷贝,就是原有的命令基础上,添加-exec cp {} /home/ \ ;(需要注意的是“{}”这个是代表是查找到文件,“\ ;”这个一定不能少,否则会报错)

4.find命令的格式是什么样的

find path -option [ -print ] [ -exec -ok command ] {} ;
“path”就是你准备在哪个路径下查找文件,一般“.”代表的是当前目录,当然也可以跟绝对路径,比较特殊的一些,如下
在这里插入图片描述
“-option”就是查找文件时,准备用哪个属性去查找,比如说,你想用name
就是"-name *.txt",查找txt格式的文件,当然,你根据大小,权限,时间等等都可以,可以连续跟多个属性,进行定位文件

5.find命令常规用法

其他属性(名字,大小,时间,权限)

说明可以使用-not进行取反,这些属性也可以进行组合使用
在这里插入图片描述

正则表达式

-regex同样属于测试项。使用-regex时有一点要注意:-regex不是匹配文件名,而是匹配完整的文件名(包括路径)。例如,当前目录下有一个文件"abar9",如果你用"ab.*9"来匹配,将查找不到任何结果,正确的方法是使用".*ab.9"或者"./ab.*9"来匹配。
针对上面的那个查找c代码的问题,可以这么写:

$ find . -regex “./[0-9]/.c” -print
./2234.c

对查找的文件进行其他动作(拷贝,删除,重命名等)

在这里插入图片描述

6.参考链接

https://www.runoob.com/linux/linux-comm-find.html
https://blog.csdn.net/lilygg/article/details/84076757
https://www.cnblogs.com/jiangzhaowei/p/5451173.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狂奔的蜗牛x

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值