文章目录

  • 前言
  • 一:locate-最简单的查找文件的方式
  • 二:find-搜索神器
    • (1)test选项
      • A:基本使用
      • B:操作符
    • (2)action选项
      • A:预定义动作
      • B:用户自定义操作
      • C:xargs
    • (3)option选项

前言

我们知道Linux操作系统的文件组织结构管理的非常好,但是随之而来的一个很大的问题就是——文件太多了,一多就容易出乱子。而多最大的带给我们最大的困扰就是如何找到我们想要的文件? 所以本章的主要内容,就是如何搜索文件

本章的主要命令如下

  • locate:通过文件名查找文件
  • find:查找文件(配合参数功能极其强大)
  • xargs:从标准输入中简历,执行命令行
  • touch:更改文件的日期时间(经常用来创建文件)
  • stat:显示文件或文件系统的状态

一:locate-最简单的查找文件的方式

locate命令可以通过快速搜索数据库,以寻找路径名与给定字符串匹配的文件,同时输出所有的匹配结果

比如要查找以zip字符串开头的程序

loacte当然可以和其他命令结合使用,比如说grep。如下全盘搜索zip,但是只是bin/目录下的就可以这样做

  • 需要注意的是使用locate命令查找到的内容可能不是最新的,如果需要最新的,需要切换为超级用户,然后手动运行updatedb程序,再查找

二:find-搜索神器

find命令可以说是Linux非常值得我们反复推敲的一个命令了,因为它真的太TM强大了

find最简单的用法就是,在find后面跟上路径名,它就会列出或者说搜索出给定路径下的所有文件

(1)test选项

A:基本使用

简单点说就是,find可以根据属性进行搜索
比如说我要搜索用户目录下所有的普通文件,就输入find ~ -type f

  • find支持的文件类型如下

比如说我要搜索用户目录下所有的超过1M的普通文件,就输入find ~ -type f -size +1M

  • 如果有“+”表示大于目标值,如果是“-”表示小于目标值,如果没有则表示等于目标值

比如说我要搜索用户目下的所有图片文件(以.jpg结尾),就输入find ~ -name "*.jpg"

当然除了以上依据名字,大小查询,find支持以下参数(部分)进行查询,需要注意的是上面的“+”“-”使用于任何的数值情况

B:操作符

简单点说,操作符可以使我们的参数有逻辑关系
举个例子,下面的文件夹里有三个普通文件和三个目录,其中test1这个普通文件的权限是600,其余不是;dir1这个目录的权限是700,其余不是
我的要求就是找到所有权限不是600的普通文件和所有权限不是700的目录,该怎么办?这个时候就要用到操作符了。

大家可以发现上述查询有一定的逻辑关系,而操作符就是用来描述这种逻辑关系的,我先把查找命令写出来,大家不要觉得惊奇,听我慢慢分析
find . \( -type f -not perm 0600 \) -or \( -type d -not -perm 0700 \)

首先我得解释一下上面出现的-or-not,其实它就是C语言的&& || !

结合上述表,你可以把上面的命令简化为(expression1) -or (expression2)

  • 这里是稍微暂停一下,很多人会觉得上面的两个表达式的关系应该and才对,但是大家要想一下这样查询的含义岂不是要查既是普通文件又是目录的文件吗?这样的关系显然错误

接着每个表达式内,我们用的是-not,是因为我们要查找的文件的权限不是0600,目录不是0700,也就是可以写作-type f -and -not -perms 0600-type d -and -not -perms 0700

最后一点是括号前面的反斜杠,那是因为括号在shell具有特殊含义,必须使用转义字符

最后还有一点要给大家说清楚,其实这一点和C语言有关,因为在C语言中我们称之为逻辑运算符的短路特性
在任何情况下,表达式1都会被执行,而中间的操作符直接决定了表达式2是否会执行

  • 这一点额外额外重要,这个性质直接影响了actions参数

(2)action选项

find强大的原因不止在于它可以查找,而且在于它可查找后进行操作

A:预定义动作


比如要删除当前目录下,所有以test开头的文件

还记得上面的短路特性吗?需要注意的是每个test选项和action选项之间的逻辑关系默认是and,也就是上图中的命令实际可以写作:find . -name " test*" -and -print -and -delete

B:用户自定义操作

这个略过,感觉这个课本上的这个操作有点鸡肋,可以用下面的xargs

C:xargs

xargs处理标准输入信息并将其转变为某指定命令的输入参数列表 ,简单点说就是xargs后面的命令会执行前面的输出结果

如下有5个test文件,找出来之后列出信息

(3)option选项

option选项用于控制find的搜索范围

3-4:常见任务和主要工具之文件搜索相关推荐

  1. 文件搜索工具(Python实现)

    文章目录 文件搜索工具介绍 代码实现 实现思路 os.walk函数 os.path.join函数 代码整体编写 打包成exe程序 效果展示 文件搜索工具介绍 文件搜索工具能够基于名称快速定位匹配的文件 ...

  2. npm run buil构建后页面白屏_从Npm Script到Webpack,6种常见的前端构建工具对比

    从Npm Script到Webpack,6种常见的前端构建工具对比 小编说:历史上先后出现了一系列构建工具,它们各有优缺点.由于前端工程师很熟悉JavaScript,Node.js又可以胜任所有构建需 ...

  3. 程序员必备:常见的安卓开发工具推荐

    Android以其极强的开放性吸引着世界各地的开发者去开发各种各样的移动应用开发,而各种SDK更是为各个层次的开发者提供了一个可以尽情展示他们专业技能和创造性的平台.虽然Java是各种平台最常用的编程 ...

  4. 深度学习中常见的打标签工具和数据集资源

    深度学习中常见的打标签工具和数据集资源 一.打标签工具 1. labelimg/labelme 1.1 搭建图片标注环境(win10) (1) 安装anaconda3 (2) 在anaconda环境p ...

  5. 常见的WebShell管理工具

    常见的WebShell管理工具 1.中国菜刀 2.蚁剑(AntSword) 3.C刀(Cknife) 4.冰蝎(Behinder) 5.Xise 6.Altman 7.Weevely 8.QuasiB ...

  6. 大数据技术人员工具包之—常见数据挖掘分析处理工具

    大数据技术人员工具包之-常见数据挖掘分析处理工具 2016年03月15日 大数据 数据科学融合了多门学科并且建立在这些学科的理论和技术之上,包括数学.概率模型.统计学.机器学习.数据仓库.可视化等.在 ...

  7. 从Npm Script到Webpack,6种常见的前端构建工具对比

    从Npm Script到Webpack,6种常见的前端构建工具对比 小编说:历史上先后出现了一系列构建工具,它们各有优缺点.由于前端工程师很熟悉JavaScript,Node.js又可以胜任所有构建需 ...

  8. 除了Fiddler工具之外,其他常见的抓包工具(Charles、Wireshark)

    除了Fiddler工具之外,还有别的工具可以抓包.本章介绍其他几个常见的抓包工具. 5.1 常见的抓包工具 目前常见的HTTP抓包工具如图5-1所示. 图5-1 常见的抓包工具 5.2 浏览器开发者工 ...

  9. DevOps的介绍及常见的几种工具

    一.DevOps的介绍 DevOps是Development和Operations的组合 可以把DevOps看作开发(软件工程).技术运营和质量保障(QA)三者的交集.传统的软件组织将开发.IT运营和 ...

最新文章

  1. rn php,rn怎样在PHP的正则表达式中匹配到?
  2. Gromacs 5.1.4 在CentOS7下GPU加速版的安装
  3. Union和Union All到底有什么区别
  4. InfoPath发布要点
  5. Makefile学习笔记-备忘
  6. ubuntu环境下php安装amqp扩展
  7. 面试了100个数据分析候选人以后,我总结出了这些面试问题
  8. Python学习笔记之列表(四)
  9. 保障健康睡眠的几种食疗法
  10. DevOps团队如何选择监控工具
  11. 从0开始学c语言-01-如何完整运行一个程序
  12. 傻瓜式激活win10,真的太简单了,一个3.3M小软件只有一个激活按钮,点一下就激活了。
  13. 三星android截屏快捷键是什么,三星s10截屏快捷键是什么
  14. 2016《A survey of transfer learning》迁移学习笔记
  15. java ckfinder_java 使用ckfinder
  16. 推荐一些python IDE(python编辑器)
  17. 超零协议(SERO)轻松入门——基于CENTOS7
  18. 如何控制弹出窗口的大小、尺寸、位置等的样式
  19. Ubuntu16.04开机左上角一条横杠以及局域网无法远程登录等问题
  20. C语言项目设计——程序设计

热门文章

  1. 生物科研神器!30分钟把人家一天的工作都给干完了!
  2. 无需第三方,使用Mac预览合并多张图片
  3. Acrobat Reader DC 2020 for mac(最好用的免费PDF阅读器) 2020新增功能
  4. 给 python 初学者的四条忠告_给 python 初学者的四条忠告-Go语言中文社区
  5. P1601 A+B Problem(高精)-- python3实现
  6. 1.3 编程基础之算术表达式与顺序执行 04 带余除法
  7. 程序猿bug修改名句
  8. [3] ADB 设备连接管理
  9. input内容右对齐_向右打方向倒库过程中,如何判断后车距离?光线较暗车库倒库技巧...
  10. Python笔记-UiSelector文本定位方式(3种定位并点击)