linux find查找深度,linux find 用法

linux find查找深度,linux find 用法find 命令用来查找文件 在当前目录以及当前目录的子目录下查找 该命令能够基于正则表达式 目录树深度 文件日期 文件类型等条件查找文件 一 根据文件名或正则表达式搜索文件根据名称搜索用法 1 findpath name filename 用法 2 findpath iname filename 两种用法都支持通配符 其中 用法 1 区分大小写 用法 2 不区分大小写 实例 查找

find命令用来查找文件(在当前目录以及当前目录的子目录下查找),该命令能够基于正则表达式、目录树深度、文件日期、文件类型等条件查找文件。

一、根据文件名或正则表达式搜索文件

根据名称搜索

用法1: find path -name ‘filename’

用法2: find path -iname ‘filename’

两种用法都支持通配符,其中,用法1区分大小写, 用法2不区分大小写。实例:查找当前目录下以.sh结尾的文件,命令如下:

find . -name ‘*.sh’

使用逻辑操作符,按多个条件搜索。-a 和 -and 为逻辑与, -o 和 -or 为逻辑或。

实例:找出当前目录下以.sh结尾并且文件名中含有test的文件,命令如下:

find . -name ‘*.sh’ -a -name ‘*test*’

使用正则表达式

-regex 选项可以根据正则匹配文件,也可使用-iregex不区分大小写。 实例:查找当前目录下以.sh或.sample结尾的文件,命令如下:

find . -regex ‘.*\.\(sh\|sample\)$’

拓展:如何查找文件名不包含某个字符的文件

例:查找文件名中不包含test且以.sh结尾的文件,命令如下:

find . -name ‘.sh’ -a ! -name ‘test’

例:查找除了.git目录以外,以.sh结尾的文件

find . -name ‘.git’ -prune -o -name ‘.sh’

二、根据路径搜索

-path可以限制匹配文件的路径以及名称。

实例:查找test目录下,以.sh结尾的文件

find . -name ‘*.sh’ -path ‘*/test/*’

三、根据目录深度搜索

-maxdepth 和 -mindepth选项可以限制find命令遍历的目录深度。

实例:只在当前目录下查找.sh结尾的文件,命令如下:

find . -maxdepth 1 -name ‘*.sh’

四、根据文件类型搜索

类UNIX系统中,文件类型包括普通文件、目录、字符设备、符号链接、套接字等。find命令通过-type属性对文件类型进行过滤。

例:查找当前目录下所有的目录,包括下一级子目录,命令如下,

find . -maxdepth 2 -type d

-type选项支持的参数对应的文件类型如下:

文件类型

参数值

普通文件

f

符号链接

l

目录

d

字符设备

c

块设备

b

套接字

s

FIFO

p

五、根据文件的时间戳搜索

类unix系统中每个文件都有三种时间戳

访问时间(-atime、-amin):用户最近一次访问文件的时间。

修改时间(-mtime、-mmin):文件最后一次被修改的时间。

元数据更改时间(-ctime、-cmin) :文件权限、所有权等最后一次被修改的时间。

time结尾的选项,其单位为天,min结尾的选项其单位为分钟,这些选项的值都为一个正负整数, 如+7,表示,7天以前被访问过的文件,-7表示7天以内被访问过的文件,7表示恰好7天前被访问的文件。

例:

1、七分钟以内被修改的文件

find . -mtime -7

2、七天以前被访问过的文件

find . -atime +7

拓展: -newer选项可以比较修改时间

例:找出比test.sh文件的修改时间更近的文件

find . -type f -newer test.sh

六、根据文件大小搜索

# 大于2k的文件

find -type f -size +2k

# 小于2k的文件

find -type f -size -2k

# 等于2k的文件

find -type f -size 2k

支持的单位,除了k之外,还有如下几个

b:块(512字节)

c:字节

w: 字(2个字节)

k:千字节(1024个字节)

M :兆字节(1024k)

G:吉字节(1024M)

七、基于文件权限和所有权搜索

# 打印权限为644的文件

find -type f -perm 644

# 打印用户www拥有的文件

find -type f -user www

八、利用find搜索结果执行相应的命令

删除操作

-delete选项可以直接删除搜索到的文件

find . -name ‘*test2*’ -delete

调用其他命令

-exec选项可以调用其他命令,对搜索结果执行相应的操作

将所有以.sh结尾的文件都合并到all_shell.txt文件中

find . -type f -name ‘*.sh’ -exec cat {} >all_shell.txt \;

命令中的{},find会将它替换为搜索到的文件名。命令结尾的;,是cat命令的结束符,而不是find命令的结束符,所以需要转义。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/221928.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午4:58
下一篇 2026年3月17日 下午4:58


相关推荐

  • UltraEdit-64中文安装

    UltraEdit-64中文安装UltraEdit

    2026年3月18日
    2
  • js修改html中classname,JS中的className操作

    js修改html中classname,JS中的className操作添加 className 1 修改元素的 所有 的 class 用新的 class 替换掉原有的所有 class 可以设置 className 属性 document getElementBy MyElement className MyClass 如果想替换为多个 class 可以使用空格分隔 2 为元素添加新的 class 如果想添加一个新的 class 并保留所有原有的 c

    2026年2月17日
    4
  • 在pycharm中使用pipenv来创建虚拟环境和安装django

    在pycharm中使用pipenv来创建虚拟环境和安装django刚在网上查了一圈 好家伙 全都是那一篇文章 而且用的 pycharm 是老版本的 下边介绍的是 pycharm2019 专业版的 直接切入正题 1 打开 pycharm gt File 文件 gt NewProject 创建新项目 2 打开 pycharm gt File 文件 gt NewProject 创建新项目 gt 选择 Django 项目 1 选择创建 Django 项目的本地路径 这里补充下 下边图应该没有后边的 必须要选择一个文件夹 2 选择 Pipe

    2026年3月27日
    2
  • Linux 查看当前用户「建议收藏」

    Linux 查看当前用户「建议收藏」whoami

    2022年6月5日
    24
  • ubuntu kill命令_killall命令

    ubuntu kill命令_killall命令Linux中的kill命令用来终止指定的进程(terminate a process)的运行,是Linux下进程管理的常用命令。通常,终止一个前台进程可以使用Ctrl+C键,但是,对于一个后台进程就须用kill命令来终止,我们就需要先使用ps/pidof/pstree/top等工具获取进程PID,然后使用kill命令来杀掉该进程。kill命令是通过向进程发送指定的信号来结束相应进程的。在默认情况下…

    2025年6月20日
    4
  • scikit-learn工具包中分类模型predict_proba、predict、decision_function用法详解「建议收藏」

    scikit-learn工具包中分类模型predict_proba、predict、decision_function用法详解「建议收藏」在使用sklearn训练完分类模型后,下一步就是要验证一下模型的预测结果,对于分类模型,sklearn中通常提供了predict_proba、predict、decision_function三种方法来展示模型对于输入样本的评判结果。说明一下,在sklearn中,对于训练好的分类模型,模型都有一个classes_属性,classes_属性中按顺序保存着训练样本的类别标记。下面是使用LogisticRegression分类器在为例,展示一下分类器的classes_属性。1、先看一下样本标签从0…

    2022年10月6日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号