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 /
find . -perm /u+w,g+w
find . -perm /u=w,g=w All three of these commands do the same thing, but the first one uses the octal representation of the file
mode, and the other two use the symbolic form. These commands all search for files which are writable by
either their owner or their group. The files don't have to be writable by both the owner and group to be
matched; either will do. find . -perm -
find . -perm -g+w,u+w Both 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。

Linux常用命令--文件(夹)查找之find命令的更多相关文章

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

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

  2. Linux下的文件夹创建命令使用实践

    [文章摘要] 本文以实际的C源程序为样例,介绍了Linux下的文件夹创建命令(mkdir)的用法.为相关开发工作的开展提供了故意的參考. [关键词] C语言  Linux  文件夹创建  makefi ...

  3. linux c遍历文件夹 和文件查找的方法

    linux c遍历文件夹的方法比较简单,使用c来实现 #include <iostream> #include <stdio.h> #include <sys/types ...

  4. linux常用头文件及说明

    linux常用头文件及说明 1. Linux中一些头文件的作用: <assert.h>:ANSI C.提供断言,assert(表达式)<glib.h>:GCC.GTK,GNOM ...

  5. linux下各文件夹的结构说明及用途介绍

    linux下各文件夹的结构说明及用途介绍: /bin:二进制可执行命令.   /dev:设备特殊文件.   /etc:系统管理和配置文件.   /etc/rc.d:启动的配 置文件和脚本.   /ho ...

  6. 【转】linux下各文件夹的结构说明及用途介绍

    linux下各文件夹的结构说明及用途介绍: /bin:二进制可执行命令. /dev:设备特殊文件. /etc:系统管理和配置文件. /etc/rc.d:启动的配 置文件和脚本. /home:用户主目录 ...

  7. Linux下各文件夹的结构说明及用途介绍(转载)

    linux下各文件夹的结构说明及用途介绍: /bin:二进制可执行命令. /dev:设备特殊文件. /etc:系统管理和配置文件. /etc/rc.d:启动的配 置文件和脚本. /home:用户主目录 ...

  8. linux下各文件夹的结构说明及用途介绍:Linux目录结构介绍

    linux下各文件夹的结构说明及用途介绍: /bin:二进制可执行命令. /dev:设备特殊文件. /etc:系统管理和配置文件. /etc/rc.d:启动的配 置文件和脚本. /home:用户主目录 ...

  9. linux 压缩当前文件夹下所有文件

    linux zip压缩.压缩当前文件夹下所有文件,压缩为a.zip.命令行的方法是怎样. zip  -r fileName.zip  文件夹名 tar tar命令可以用来压缩打包单文件.多个文件.单个 ...

  10. 【转载】Linux下各文件夹的含义和用途

    原文地址:https://www.cnblogs.com/lanqingzhou/p/8037269.html Linux下各文件夹的含义和用途 Linux根目录”/“下各个系统文件夹的含义和用途 1 ...

随机推荐

  1. 解决 Ubuntu 13.04 无法调节屏幕亮度的问题

    13.04与12.04大部分步骤是相同的,只是12.04的方法在13.04中失败了,所以还是有必要说明一下.我到电脑是宏碁AS4750G,硬盘安装系统后电源亮度无法调节. 解决方法如下: 终端输入代码 ...

  2. java的Date类型转换为MySQL数据库的Date类型

    最近遇到一个问题,需要把java中的日期类型存放为MySQL数据库的日期类型,两个日期之间需要进行转化才能进行存储,转化代码如下: package com.alphajuns.demo1; impor ...

  3. HTML-CSS文件链接HTML的三种方式

    <!--css文本的链接方式有三种:分别是内联定义.链入内部css.和链入外部css--> <!--1.代码为:--> <!--<html> <head ...

  4. Linux下的Make与Makefile

    原文转载自:http://www.cpplive.com/html/1776.html 另外一个不错的博客http://bbs.chinaunix.net/thread-1950588-1-1.htm ...

  5. JZOJ.3769【NOI2015模拟8.14】A+B

    Description 对于每个数字x,我们总可以把它表示成一些斐波拉切数字之和,比如8 = 5 + 3,  而22 = 21 + 1,因此我们可以写成  x = a1 * Fib1 + a2 * F ...

  6. HYSBZ 2565 最长双回文串 (回文树)

    2565: 最长双回文串 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 1377  Solved: 714 [Submit][Status][Dis ...

  7. CodeForces 17E Palisection(回文树)

    E. Palisection time limit per test 2 seconds memory limit per test 128 megabytes input standard inpu ...

  8. 【总结】两种 NIO 实现:Selector 与 Epoll

    时间2012-11-17 08:38:42 开源中国新闻原文  http://my.oschina.net/ielts0909/blog/89849 我想用这个话题小结下最近这一阶段的各种测试和开发. ...

  9. 一篇搞定vue-router

    由于Vue常见于前后端分离开发场景下,所以页面跳转工作全部交给了前端,所以基于集中管理的原则,就有了vue-router插件,它给定了url和组件之间的跳转规则 Demo准备 vue init web ...

  10. Log4j:log4j.properties 配置解析

    Log4j 三个主要组件 Loggers(记录器):记录日志的工具,程序中就是用它来记录我们想要的日志信息. Appenders (输出源):日志输出到什么地方,可以是控制台.文件.流位置.数据库,等 ...