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

find命令学习总结

  • 1.find命令是用来干什么的
  • 2.find命令怎么查找文件的底层逻辑
  • 3.find命令查找到文件后,我们还能对文件干什么
  • 4.find命令的格式是什么样的
  • 5.find命令常规用法
    • 其他属性(名字,大小,时间,权限)
    • 正则表达式
    • 对查找的文件进行其他动作(拷贝,删除,重命名等)
  • 6.参考链接

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”就是你准备在哪个路径下查找文件,一般“.”代表的是当前目录,当然也可以跟绝对路径,比较特殊的一些,如下
linux-文件查找-find命令-学习总结_第1张图片
“-option”就是查找文件时,准备用哪个属性去查找,比如说,你想用name
就是"-name *.txt",查找txt格式的文件,当然,你根据大小,权限,时间等等都可以,可以连续跟多个属性,进行定位文件

5.find命令常规用法

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

说明可以使用-not进行取反,这些属性也可以进行组合使用
linux-文件查找-find命令-学习总结_第2张图片

正则表达式

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

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

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

linux-文件查找-find命令-学习总结_第3张图片

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

你可能感兴趣的:(Linux,linux)