find 命令全集

Find命令全集

简介

find命令是 Linux 系统中的一款基于目录文件查找的命令。它可以查找指定目录下符合指定条件的文件或目录,并对这些文件或目录进行相应的操作。

find命令非常强大,提供了很多可选参数,支持使用通配符进行模糊匹配,还可以使用用户自定义的过滤条件。find命令可以查找文件、目录,甚至可以查找符号链接、设备文件等。

命令格式

find命令的基本格式如下:

find [寻找路径] [选项和参数] [匹配条件]
  • [寻找路径]:指定查找的起始目录,可以是相对路径和绝对路径。如果不指定,则默认从当前目录开始查找。
  • [选项和参数]:用于指定一些操作和过滤条件,比如:-type-mtime-mtime +7-name等选项。
  • [匹配条件]:具体的过滤规则,用于匹配文件名、文件类型、文件大小、修改时间等信息。

常用选项和参数

以下是find命令中常用的选项和参数:

  • -name pattern:根据文件名进行模糊匹配。

    例如,查找/etc目录下所有以.conf结尾的文件:

    find /etc -name "*.conf"

  • -type [bcdpfls]:根据文件类型进行匹配。该选项后面紧跟的字符表示文件类型,取值范围如下:

    • b:块设备文件(如硬盘、光驱等)。
    • c:字符设备文件(如键盘、鼠标等)。
    • d:目录文件。
    • p:命名管道。
    • f:普通文件。
    • l:符号链接。
    • s:套接字文件。

    例如,查找/目录下所有普通文件:

    find / -type f

  • -mtime n:根据文件修改时间进行匹配。该选项后面紧跟一个数字n,表示距今n天内修改过的文件。

    例如,查找/目录下距今7天内修改过的文件:

    find / -mtime -7

  • -size [+|-]n[b|c|w|k|M|G]:根据文件大小进行匹配。+表示文件大小大于等于指定值,-表示文件大小小于等于指定值,b表示以字节为单位,c表示以字节为块,w表示以 2 字节为块,k表示以 1024 字节(1KB)为块,M表示以 MB 为单位,G表示以 GB 为单位。

    例如,查找/目录下大小超过1GB的文件:

    find / -type f -size +1G

  • -empty:查找空文件或空目录。

    例如,查找/var目录下所有空目录:

    find /var -type d -empty

  • -user user_name:根据所有者进行匹配。

    例如,查找/home目录下所有属于 user1 所有的文件:

    find /home -user user1

  • -group group_name:根据所属组进行匹配。

    例如,查找/home目录下所有属于 group1 所有的文件:

    find /home -group group1

  • -perm mode:根据文件权限进行匹配。例如:

    • -perm 777:查找文件权限为 777 的文件。
    • -perm -777:查找文件权限包含 777 的文件。
    • -perm /777:查找文件权限包含 777 的文件,但不包括权限恰好为 777 的文件。
  • -maxdepth n:指定最大搜索深度,避免递归搜索过多的子目录。

    例如,查找/etc目录下最大深度为 1 的所有文件和文件夹:

    find /etc -maxdepth 1

示例

示例一

查找/home目录下修改时间距今 30 天以内,属于user1用户的所有.txt.log文件。

find /home -type f \( -name "*.txt" -o -name "*.log" \) -mtime -30 -user user1

该命令说明:

  • -type f:查找文件。
  • \( -name "*.txt" -o -name "*.log" \):使用圆括号括起来的两个-name条件表示查找文件名满足以.txt结尾或者以.log结尾的文件。
  • -mtime -30:查找文件修改时间距现在不超过30天的文件。
  • -user user1:查找文件所有者是user1的文件。

示例二

查找/var目录下大小超过 1GB,修改时间在 3 天以内,属于www用户的所有日志文件,同时将找到的文件使用tar打包。

find /var -type f -size +1G -mtime -3 -user www -name "*.log" -exec tar -czf logs.tar.gz {} +

该命令说明:

  • -size +1G:查找文件大小超过 1GB 的文件。
  • -mtime -3:查找文件修改时间距现在不超过 3 天的文件。
  • -user www:查找文件所有者是www用户的文件。
  • -name "*.log":查找符合文件名为以.log结尾的文件。
  • -exec tar -czf logs.tar.gz {} +:对找到的文件进行打包操作,其中{}表示查找到的文件名,+表示一次性将查找到的所有文件打包起来,避免每个文件都打包一次。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:find 命令全集 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • HTML5开发Kinect体感游戏的实例应用

    下面是详细讲解“HTML5开发Kinect体感游戏的实例应用”的完整攻略。这个攻略将分为以下几个部分: 环境配置 库的引入 代码编写 示例说明 环境配置 开发这个Kinect体感游戏,我们需要以下环境: Kinect设备 Windows系统 Visual Studio编译器 在环境配置过程中,要注意以下几点: Kinect设备的驱动程序要正确安装。 在Vis…

    other 2023年6月27日
    00
  • 深度解析Spring内置作用域及其在实践中的应用

    深度解析Spring内置作用域及其在实践中的应用攻略 介绍 Spring框架是一个流行的Java开发框架,提供了多种作用域来管理对象的生命周期。本攻略将详细讲解Spring内置作用域及其在实践中的应用。 Spring内置作用域 Spring框架提供了以下几种内置作用域: Singleton(单例):在整个应用程序中只存在一个实例。 Prototype(原型)…

    other 2023年8月19日
    00
  • switch续航版续航如何 switch续航版游玩时间介绍

    当涉及到Switch续航版的游玩时间,有几个因素需要考虑,包括游戏类型、屏幕亮度、网络连接和使用的功能。以下是一个完整的攻略,包含两个示例说明: 1. 游戏类型对续航时间的影响 不同类型的游戏对Switch续航版的电池寿命有不同的影响。例如,图形复杂、要求高性能的游戏(如《塞尔达传说:荒野之息》)会消耗更多的电池电量,而简单的像素游戏(如《超级马里奥奥德赛》…

    other 2023年10月19日
    00
  • 在Pycharm中项目解释器与环境变量的设置方法

    在Pycharm中,设置项目解释器与环境变量是非常重要的一步,下面为大家介绍详细的设置方法。 设置项目解释器 1.首先打开Pycharm,在菜单栏中选择File -> Setting,进入设置页面。 2.在设置页面中,选择Project -> Project Interpreter,进入项目解释器设置页面。如果您还没有安装需要的解释器,可以在页面…

    other 2023年6月27日
    00
  • 三种经典iphone上网络抓包方法详解

    三种经典iPhone上网络抓包方法详解 网络抓包是开发人员在进行网络应用开发和调试时必不可少的技能。在iPhone设备上进行网络抓包也是非常必要的。本文将介绍三种经典的iPhone上网络抓包方法。 方法一:使用Charles进行网络抓包 Charles是一款非常流行的跨平台网络代理工具,在iPhone上使用也非常方便。下面是具体步骤: 安装Charles,启…

    其他 2023年3月29日
    00
  • C语言的变量与常量 字符字符串与转义字符详解

    C语言的变量与常量 变量 在 C 语言中,变量是用于存储值的存储区域。这个存储区域在编译时就被确定了,因此其大小也是固定的。然而,在程序运行时,内存中并不是所有的存储区域都必须被存储的值所占用。变量在使用之前必须先声明,声明变量的基本语法格式如下: type variable_name; 其中,type 是变量的数据类型,variable_name 是变量的…

    other 2023年6月20日
    00
  • 巧解 JavaScript 中的嵌套替换(强大正则)

    巧解 JavaScript 中的嵌套替换(强大正则)攻略 在 JavaScript 中,我们经常需要对字符串进行替换操作。通常情况下,我们可以使用 replace() 方法来实现简单的替换。但是,当涉及到嵌套替换时,即在替换的结果中还存在需要替换的内容,这时候就需要使用强大的正则表达式来解决了。 下面是一个详细的攻略,介绍如何巧妙地在 JavaScript …

    other 2023年7月28日
    00
  • c/c++笔记之char*与wchar_t*的相互转换

    char与wchar_t的相互转换 在C/C++编程中,char和wchar_t是两种常见的字符串类型。char是以ASCII码为基础的字符串类型,而wchar_t是以Unicode编码为基础的字符串类型。在实际开发中,我们可能需要将这两种字符串类型进行相互转换。下面是char与wchar_t的相互转换的完整攻略。 char转换为wchar_t 将char转…

    other 2023年5月9日
    00
合作推广
合作推广
分享本页
返回顶部