使用 find 命令实现高级排除需求

Linked

关于 find 命令,本博客介绍过 atime,ctime,mtime 介绍过 --exec 参数

介绍这些的基本需求是进行文件管理。事实上,基于终端进行 Linux 中排除掉筛选的文件 似乎有些许局限。

那么,如果希望据说强大的文件搜寻与处理功能。我们还得回到 find 命令上来,本文基于 "--prune" 参数进行说明。

Deleted

# find . -name "*git*"
./themes/snippet/layout/_vendor/comments/gitment.ejs
./themes/landscape/.gitignore
./.gitignore
./.git

这样我们可以找到所有带 "git" 的文件或者文件夹。更多细节可查询附录内 "find 查询参数" 一节。

Judge

find 命令本身是带条件判定的。在早期写脚本的时候由于不知道这个技巧,于是采用输出信息行数判断以确定是否搜索到信息。

在 find 命令中,-o 表示前者执行成功后者不执行;'-a' 表示前者执行成功后者执行。

# find . -name "*git*" -prune -a -printf "该条包含 git 信息\n"
该条包含 git 信息
该条包含 git 信息
该条包含 git 信息
该条包含 git 信息
# find . -name "*git*" -prune -a -print
./themes/snippet/layout/_vendor/comments/gitment.ejs
./themes/landscape/.gitignore
./.gitignore
./.git
# find . -name "*git*" -prune -o -printf "该条不包含 git 信息\n"

使用这条命令也就实现了高级排除的需求。

Appendix

find 查询参数细节

# find . -name "*git*" -type f
./themes/snippet/layout/_vendor/comments/gitment.ejs
./themes/landscape/.gitignore
./.gitignore
# find . -name "*git*" -type d
./.git
# find . -path "./.git"
./.git

**tips: ** '-name "string" -type d' 和直接 '-path "Relative_directory/directory"'。

**Attention: ** 使用 '-path' 后跟的目录必须是相对地址并且在尾部不可以加斜杠,且不可使用通配符。

最新文章

  1. 初探ansible安装
  2. Hadoop集群搭建安装过程(一)(图文详解---尽情点击!!!)
  3. java中的hashcode()和equals()
  4. char*,wchar_t*,CString和BSTR之间的转换
  5. jQuery简介<思维导图>
  6. 小代码编写神器:LINQPad 使用入门
  7. 有关promise的技巧
  8. 既然还看不到未来之光,那就从骄阳开始的地方--IT携行
  9. ACM-ICPC 2018 徐州赛区网络预赛 J Maze Designer(最大生成树,倍增lca)
  10. 【转】Altium Designer 3D封装下载及导入教程
  11. js Object.prototype.toString.call()
  12. GitLab 项目创建后地址由Localhost改为实际IP的方法
  13. 待续--mysql中key 、primary key 、unique key 与index区别
  14. hdu1059
  15. CF1059B Forgery
  16. Boost(1.69.0) windows入门(译)
  17. Java工具类使用注意事项
  18. Qt开发程序在Windows 10应用须要管理员执行的解决思路
  19. CPU多核控速
  20. 第02组 Beta冲刺(4/5)

热门文章

  1. 2、HttpClient修改处理策略Strategy
  2. 633. Sum of Square Numbers
  3. 2018.09.15[POI2008]BLO-Blockade(割点)
  4. 2018.07.20 atcoder Largest Smallest Cyclic Shift(贪心)
  5. redis之单机和主从环境搭建
  6. JS数组去重算法实现
  7. 一个简单 Go Web MVC 框架实现思路
  8. 建立多人协作git仓库/git 仓库权限控制(SSH)
  9. hibernate 延迟加载深入分析(persistentSet的延迟加载)
  10. Example11(June 9,2015)