计算机是一个工具,既然是工具就要实现一定的功能,比如查找文件,在windows下我们一般都是这样查找文件的,很简单但也有缺点,比如只能用文件名来查找,速度比较慢,相对而言,linux就要智能得多了。
![88405aee470d74925c1b623ad1ca6e2a.png](https://img-blog.csdnimg.cn/img_convert/88405aee470d74925c1b623ad1ca6e2a.png)
linux中查找文件主要用的find命令,你可以把find命令当成是一个产品,这个产品的功能非常完善,下面我给大家介绍一下。
![a8f6273ce909399aa719046c7b0e3258.png](https://img-blog.csdnimg.cn/img_convert/a8f6273ce909399aa719046c7b0e3258.png)
首先我们先用 ll 命令查看一下家目录下有什么文件,我们发现家目录下文件并不太多,然后我们先以查找hehe.txt为例,使用命令 find ./ -name "hehe.txt",发现结果只有一个。
![f1f551702c0ab011c979da1d10ad1c4c.png](https://img-blog.csdnimg.cn/img_convert/f1f551702c0ab011c979da1d10ad1c4c.png)
./ 的意思是当前目录, -name "hehe.txt"意思是被查找文件的名称为"hehe.txt”,这种查找方式和Windows下没有什么区别。然后我们开始增加难度,在家目录的test文件夹下也创建一个hehe.txt,再用上面的命令查找一次,find ./ -name "hehe.txt",此时的结果为2个,linux下默认的查找方式为深度查找,结果包含了底层目录的内容,如果我们只想要第一级目录下的结果怎么办?
![8d668a721b89ea3ae36ab694b0f4499a.png](https://img-blog.csdnimg.cn/img_convert/8d668a721b89ea3ae36ab694b0f4499a.png)
![bb0ca61747bcff5e946c2593f99409d0.png](https://img-blog.csdnimg.cn/img_convert/bb0ca61747bcff5e946c2593f99409d0.png)
可以增加一个参数 maxdepth 1,find ./ -maxdepth 1 -name "hehe.txt",这个参数的意思是只查找当前目录下的结果。
![9fc8624c4d7a2e8974c6a76c4a5dd852.png](https://img-blog.csdnimg.cn/img_convert/9fc8624c4d7a2e8974c6a76c4a5dd852.png)
然后我们再增加一下难度,如果只想查找文件体积大于1M的文件怎么办?用size参数。
![a6fd7025c7de640032b975eac0f896c3.png](https://img-blog.csdnimg.cn/img_convert/a6fd7025c7de640032b975eac0f896c3.png)
-type f的意思是查找为类型为文件,-size +1M的意思是文件的大小要大于1M,那如果我们想查找小于1M的文件怎么办?用-size -1M。
![d0a94a2b51bea84e00d6057452494ecd.png](https://img-blog.csdnimg.cn/img_convert/d0a94a2b51bea84e00d6057452494ecd.png)
小于1M的文件比较多,然后再增加难度,如果我们想要查找两天之前的文件怎么办?用mtime,mtime表示文件最后的修改时间,+2表示两天之前的结果,-2表示2天之内的结果。
![b08e71834fe848c8982d18e1d8e49eee.png](https://img-blog.csdnimg.cn/img_convert/b08e71834fe848c8982d18e1d8e49eee.png)
还有,如果我们按名称查找时,不想区分大小写怎么办?那就用iname。
通过上面的介绍是不是发觉find就比windows下的查找要强大得多哪?其实除了上面几个命令,find的参数还有几十个,想要完全掌握很难。