16 find 查找文件和目录
实际工作中文件多了,可能就会忘掉它的位置,这个时候就可以使用 find
命令快速查找出文件所在目录的地址,提升了文件查找的效率。
1. 按照文件类型查找
使用 -type
参数可以查找不同类型的文件,其可以查找的文件类型如下:
find -type 文件类型介绍 | 描述 |
---|---|
f | 普通文件 |
d | 目录文件 |
l | 符号链接文件 |
b | 块设备文件 |
c | 字符设备文件 |
p | 管道文件 |
s | 套接字文件 |
这里以查找 /home
目录中的所有目录为例,使用 find
命令跟上 -type
来限制文件类型,命令如下:
cd /
find ./home -type d
执行结果如下图:
Tips:
find ./home -type d
其中的./home
表示要查找的相对路径的目录,-type d
表示查找文件类型为目录。
2. 按照文件名查找
使用 -name
参数可以按照文件名来查找,这里以查找 /home
目录下所有的 .txt
文件为例,命令如下:
cd /
find ./home -name *.txt
执行结果如下图:
Tips:
find ./home -name *.txt
其中的./home
表示要查找的相对路径目录,-name
表示按照文件名查找,*.txt
表示文件名匹配规则,*
表示通配符,还可以查找指定文件名,如find ./home -name a.txt
。
3. 查找排除指定文件
可以在查找文件的时候使用 !
取反来排除指定的文件,例如查找 /home
目录中除了 .txt
文件以外的所有文件,命令如下:
cd /
find ./home -name *.txt
find ./home ! -name a.txt
执行结果如下图:
Tips:
find ./home ! -name a.txt
中的!
可以理解为排除符合要求的文件。
4. 对查找到的文件执行操作
有时候需要对查找到的指定文件执行特定的操作:
cd /
find ./home -name *.txt
find ./home -name *.txt -exec rm {} ;
find ./home -name *.txt
执行结果如下图:
Tips:注意
find ./home -name *.txt -exec rm {} ;
后面的;
不要漏掉,-exec
表示执行某个操作,rm
表示删除操作。
5. 小结
本小节介绍了如何使用 find
命令去查找目录中指定的文件,可以通过 -type
指定查找文件的类型, !
排除查找文件,-exec
对查找到的文件执行特定命令,需要注意的是 find
命令用法很多,本小节介绍了几种比较常见的用法,另外在查找文件名称时,可以使用表达式去匹配符合要求的文件名。