首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
函数参数与返回值
传递变长参数
defer 和追踪
内置函数
递归函数
将函数作为参数
闭包
应用闭包:将函数作为返回值
使用闭包调试
计算函数执行时间
通过内存缓存来提升性能
声明和初始化
切片
For-range 结构
切片重组(reslice)
切片的复制与追加
字符串、数组和切片的应用
声明、初始化和 make
测试键值对是否存在及删除元素
for-range 的配套用法
map 类型的切片
map 的排序
将 map 的键值对调
标准库概述
regexp 包
锁和 sync 包
精密计算和 big 包
自定义包和可见性
为自定义包使用 godoc
使用 go install 安装自定义包
自定义包的目录结构、go install 和 go test
通过 Git 打包和安装
Go 的外部包和项目
在 Go 程序中使用外部库
结构体定义
使用工厂方法创建结构体实例
使用自定义包中的结构体
带标签的结构体
匿名字段和内嵌结构体
方法
类型的 String() 方法和格式化描述符
垃圾回收和 SetFinalizer
当前位置:
首页>>
技术小册>>
go编程权威指南(二)
小册名称:go编程权威指南(二)
查找文件和目录 ======= 实际工作中文件多了,可能就会忘掉它的位置,这个时候就可以使用 `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/study` 目录中除了 `.log` 文件以外的所有文件,命令如下: ```bash magento@~/study$ touch a.txt b.txt c.txt magento@~/study$ ls a.txt b.txt c.txt magento@~/study$ touch a.log magento@~/study$ ls a.log a.txt b.txt c.txt magento@~/study$ find ./ ! -name *.log ./ ./c.txt ./b.txt ./a.txt ``` > **Tips**:`find ./ ! -name *.log` 中的 `!` 可以理解为排除符合要求的文件。 4\. 对查找到的文件执行操作 --------------- 有时候需要对查找到的指定文件执行特定的操作: magento@/$ find /home/study -name *.txt /home/study/c.txt /home/study/b.txt /home/study/a.txt magento@/$ find /home/study -name *.txt -exec rm {} \; magento@/$ find /home/study/ -name *.tx > **Tips**:注意 `find /home/study -name *.txt -exec rm {} \;` 后面的 `;` 不要漏掉, `-exec` 表示执行某个操作,`rm` 表示删除操作。 5\. 全局查找 --------------- 有时候,你只记得有个文件名叫badboy.txt 但你完全忘记这个文件放在哪里了 我们就在整个服务器搜索: ```bash find / -name "badboy.txt" ``` 当然,这样来搜索服务器是很耗费服务器资源的,但也是能帮你找到文件的一个好办法。 6\. 小结 ------ 本小节介绍了如何使用 `find` 命令去查找目录中指定的文件,可以通过 `-type` 指定查找文件的类型, `!` 排除查找文件,`-exec` 对查找到的文件执行特定命令,需要注意的是 `find` 命令用法很多,本小节介绍了几种比较常见的用法,另外在查找文件名称时,可以使用表达式去匹配符合要求的文件名。
上一篇:
文件和目录重命名
下一篇:
查看文件内容
该分类下的相关小册推荐:
go编程权威指南(一)
Go Web编程(上)
Go 组件设计与实现
Golang修炼指南
深入浅出Go语言核心编程(三)
Go语言入门实战经典
Golang并发编程实战
深入浅出Go语言核心编程(四)
Go开发权威指南(下)
从零写一个基于go语言的Web框架
深入浅出Go语言核心编程(六)
深入浅出Go语言核心编程(二)