Linux系统用得越久,就会发现这真的是一个很优秀的系统,各种方便各种实用各种高效率。

晚饭前写一下find命令的笔记。

其实这篇笔记,也是看到一篇外文博客,写得不错,自己拿来练一练,然后才顺便写篇笔记。

find命令是我们在Linux下最常用的文件(夹)查找命令之一,它的用途很广泛,可以通过一个文件(夹)的所属用户、用户组,包含名称,时间(更新或更旧),文件类型(.txt,.rar后缀),文件大小,文件权限等等条件来对文件(夹)进行查找,这个命令对于系统管理员来说肯定是很实用的。

Find --help给出的帮助内容很简单,我们首先需要知道的是find的表达式可以由四个主要成分组成:操作符、选项、测试表达式以及动作

我们最常用到是测试表达式和动作这两部分。先看一下着两部分由哪些基本选项组成:

如果你需要知道更详细的帮助内容,用man手册即可:

man find

比如说我想知道-amin这个选项具体是什么意思,干什么用,在man手册给出的文档中我们就可以找到:

可见,-amin选项帮我们找到的是n分钟前使用过的文件。

又比如说-iname这个选项:

可见,-iname选项的作用就是忽略文件名的大小写,凡是字符匹配的文件都对其进行打印。

其他的就不再一一列举了。看man文件找得比较慢,所以还是平时多写一写常用的、实用的选项搭配比较实际。

一、根据文件名查找文件:

根据文件名查找文件,我们使用-name测试选项即可,如果需要忽略大小写,则可以使用-iname选项。

比如说,我在桌面新建了一个文件夹testdir,里面有文件如下:

颜色高亮的为文件夹,text.php重复,方便后面练习“通过文件类型查找文件”。

权限为644和777的文件我们在后面练习“通过文件权限查找”的时候会用到。

Tips:Linux中的文件权限,4为读,2为写,1为执行,权限顺序为文件所属用户、文件所属用户组、其他用户。

1、最简单的模糊匹配:

如果知道一个文件的具体名字进行find查询,一般只是为了确定这个文件是否存在,就没必要练了,先写一下最基本的模糊匹配。比如,我想查全部起始字符为“test”的文件:

2、只查找文件夹:

需要用到-type测试选项,接上面的例子,我只要文件夹(dir):

3、只查找文件(file):

二、根据文件权限进行查找:

1、最基础的查找:

比如,我们要查找权限为777的文件:

如果需要查找权限非777的文件,那么补充!或者-not选项即可:

1、指定具体权限:

我们先看看帮助文档怎么介绍这个选项,大意是-perm /后必须跟u、g或o三种选择。

看了下帮助文档给的例子,挺好的,给贴上来:

find . -perm /220
find . -perm /u+w,g+w
find . -perm /u=w,g=wAll three of these commands do the same thing, but the first one uses the  octal  representation  of  the  filemode,  and  the  other  two  use  the symbolic form.  These commands all search for files which are writable byeither their owner or their group.  The files don't have to be writable by both  the  owner  and  group  to  bematched; either will do.find . -perm -220
find . -perm -g+w,u+wBoth these commands do the same thing; search for files which are writable by both their owner and their group.

三、根据时间信息查找文件:

我们一般可以根据两种时间信息查找文件,一种是文件修改时间,另一种是文件上次被访问的时间。

第一种查找,一般常用两种选项:-mmin N,-mtime N,前者的时间N为分钟,后者的N为天数。我们都知道,N可以是:N,+N,-N三种形式,所以我们可以查找一个时间范围内的文件。

比如,我想找修改时间超过3分钟,但是还没到50分钟的文件:

第二种也是类似的,对应的选项则是-cmin和-ctime。

四、根据文件大小查找文件:

需要用到选项如下,支持多种单位:

比如我想找一个大小大于30bytes,而且文件名是以“testfi”开头的文件:

用grep正则表达式限制输出到控制台的结果即可。

五、查找文件并进行操作:

我们比较常用的选项(严格来说是动作)如下:-exec command {} \

注意空格。

比如说,我想找到权限为644的文件,然后把它修改为权限777:

题外话,rename命令:

本来想演示重命名的,于是又想起rename命令这个好东西,就顺便写一下,rename命令本身就是支持正则表达式的,比如说批量改名:

第一个例子是将所有含有.bak后缀的文件的后缀去除,第二个例子是将全部大小改为小写。

如果需要批量改名,则语法如下:

rename ‘s/\.jpp$/\.jpg/’ *.jpp

意为将所有后缀为jpp的文件改成后缀为jpg。

转载于:https://www.cnblogs.com/nerohwang/p/3502273.html

Linux常用命令--文件(夹)查找之find命令相关推荐

  1. linux查看某个文件夹的大小(ls命令、du命令详解)

    ls 命令:列出当前工作目录下的所有文件/文件夹的名称 使用ls -l,会显示成字节大小,ls- lh会以KB.MB等为单位进行显示更加直观. du 命令:查看当前目录和子目录文件夹/文件大小情况 d ...

  2. Linux常见的文件内容查找和替换命令

    在Linux服务器部署和运维过程中,经常出现需要查找或者批量替换某个配置文件,这个时候,借用Linux的一些基础命令,来提高工作效率. 1.vi命令下的查找和替换 1.1 vi下的查找 比如有个bas ...

  3. Linux下将文件夹压缩成.zip命令

    zip -r fileName.zip /home/yangjianpan/桌面/需要打包的文件夹名 -r //第归处理子文件夹

  4. Linux中根据文件夹/文件名查找其所在的磁盘位置(含find命令解析)

    背景 Linux中查找文件位置的方式有很多种,我们主要介绍find命令.grep命令,另外捎带一提whereis命令.which命令. 一.查找命令(Find Command) findcommand ...

  5. Linux fing cd 查找文件/文件夹并进入目录命令

    查找文件|文件夹并进入目录命令:cd $() [root@localhost /]# cd $(dirname "`find / -name 'ifcfg-ens33'`") // ...

  6. linux查找代码cd文件夹,Linux fing cd 查找文件/文件夹并进入目录命令

    查找文件|文件夹并进入目录命令:cd $() [root@localhost /]# cd $(dirname "`find / -name 'ifcfg-ens33'`") // ...

  7. linux替换某个文件夹下所有文件,Linux 批量查找并替换文件夹下所有文件的内容...

    1.批量查找某个目下文件的包含的内容 cd etc grep -rn "查找的内容" ./ 2.批量替换某个目下所有包含的文件的内容 cd etc sed -i "s/查 ...

  8. linux mkdir 文件夹,Linux mkdir 创建文件夹命令

    介绍: 该命令创建指定的目录名,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录 语法: mkdir [-m] [-p] 目录名 选项介绍: -m: 对新建目录设置 ...

  9. linux mount挂载命令(将分区挂接到Linux的一个文件夹下,从而将分区和该目录联系起来)

    看海康摄像头启动脚本有一些mount命令,不知道干啥用的... mount是Linux下的一个命令,它可以将分区挂接到Linux的一个文件夹下,从而将分区和该目录联系起来,因此我们只要访问这个文件夹, ...

  10. linux常用高级命令,Linux常用高级文件操作命令

    Linux常用高级文件操作命令 cat 查看文本#cat 文件名 打印文件内容到当前屏幕上#cat -n 文件名 显示行号#cat gt; Linux常用高级文件操作命令 cat 查看文本 #cat  ...

最新文章

  1. Linux安装及服务控制
  2. 2021-10-20 Speaking Class
  3. 剑指offer之判断二叉树是不是平衡二叉树
  4. python源码剖析_Python源码剖析 - 对象初探
  5. 自注意力机制Self-attention(1)
  6. 报表如何集成 echarts 官网示例图
  7. Esxi 6.7安装教程
  8. python中pop什么意思_python里pop是什么意思
  9. 利用python通过站长之家查询ip地址归属地
  10. 如何将分表汇总到总表_如何快速将几个分表合并到一张表
  11. 黑无止境移动安全“漏洞”
  12. 深度学习基础技术分析2:神经网络(含代码分析)
  13. 赛灵思 Xilinx Versal 自适应计算加速平台嵌入式设计教程
  14. 从Mac的GUID分区谈起
  15. html表单实验结论,web前端开发技术实验报告-实验五
  16. 阻尼效果总结(顶部图片放大效果)
  17. 你想制作一款属于自己的游戏吗?
  18. 全国身份证身份数据库sql(2021最新)
  19. C++实训练习册(C++之整数性质判断)
  20. 23、Android之使用 Google API 的 GTalk

热门文章

  1. 动态规划—01背包问题
  2. (五)Docker查看容器ip及指定固定IP
  3. Flutter入门:Hero共享元素
  4. Solidworks如何绘制装饰螺纹线
  5. “赋值”与“初始化”
  6. Linux中的SELinux详解--16
  7. 无法显示 xml 页 解决方案
  8. C博客作业03--函数
  9. OAuth的MVC实现(微软)
  10. 纯CSS实现气泡聊天框的方法