首页 > 编程知识 正文

linux下find命令用法,linux 查找目录

时间:2023-05-03 09:54:23 阅读:34800 作者:168

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 '

示例查找以. sh结尾的文件,而不是. git目录

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

符号链接

LL

目录

d

字符设备

C

块设备

B

插座

s

国际先进先出

p

五.文件时间戳搜索

类unix系统上的每个文件都有三种类型的时间戳

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

修改时间(-mtime、-mmin ) :上次修改文件的时间。

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

以time结尾的选项为1天,以min结尾的选项为1分钟,这些选项的值都是正负整数。 例如,7表示7天前访问的文件,-7表示7天内访问的文件,7表示正好7天前访问的文件。

示例:

1、7分钟内修改的文件

find . -mtime -7

两七天前访问的文件

find . -atime 7

扩展:-newer选项允许您比较更改时间

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

find . -type f -newer test.sh

六.按文件大小搜索

大于#2k的文件

查找类型f-size 2k

小于#2k的文件

查找类型f-size-2k

等于#2k的文件

查找类型f-size 2k

除了k以外,还支持以下单位

b :块(512字节)。

c :字节

w:字(2字节)

k:千字节(1024字节)。

M :兆字节(1024k ) )。

G:千兆字节(1024M米) )。

七、根据档案权限和所有权进行检索

#打印权限为644的文件

find -type f -perm 644

#打印用户www拥有的文件

查找类型f-user www

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

删除操作

-delete选项直接删除找到的文件

find . -name '*test2*' -delete

调用其他命令

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

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

find.- typef-name ' *.sh '-exec cat { } all _ shell.txt ;

单击命令中的{},将其替换为找到的文件名。 命令结束;find命令的结尾,而不是cat命令的结尾,因此必须转义。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。