Linux 查找文件名正则表达式 (linux find name 正则)

对于Linux用户来说,查找某个文件或特定类型的文件是非常重要的。其中,查找文件名时,可以使用正则表达式(regular expression)匹配文件名,来快速定位到需要查找的文件。本文将介绍在Linux系统中使用正则表达式来查找文件名的方法。

1. 常见的匹配符号

正则表达式是一种通用的规则,用于描述字符串模式,其中可以包括文本字符和特殊符号字符。下面列出了一些常用的匹配符号:

– `*` : 匹配任意数量的字符;

– `?` : 匹配一个字符;

– `[]` : 匹配方括号内的一个字符,可以是多个,也可以是一个范围,如`[ab]`匹配a和b,`[a-z]`匹配从a到z的所有字符;

– `{}` : 匹配花括号内的内容,如`{3}`匹配3个连续的字符,`{3,5}`匹配3到5个连续的字符;

– `()` : 分组。对于一组匹配的字符,可以使用括号将其分组,例如`(ab)+`表示匹配一个或多个连续的字符ab。

2. 在当前目录查找文件名

在命令行中输入`ls`命令,可以显示当前目录下的所有文件和目录。可以使用`*`通配符查找文件名。例如,如果要查找以txt结尾的文件,可以使用如下命令:

“`

ls *.txt

“`

如果要查找以数字开头和txt结尾的文件,可以使用如下命令:

“`

ls [0-9]*.txt

“`

其中,`[0-9]`表示匹配数字,`*`表示匹配任意数量的字符,`.`表示“点”的意思,表示当前目录,`txt`表示目标文件名以txt结尾。

3. 在指定路径下查找文件名

如果要在指定路径下查找文件名,可以使用`find`命令。该命令的语法如下:

“`

find /path/to/search -name “pattern”

“`

其中,`/path/to/search`表示要查找的路径,`-name`指定要查找的文件名模式,`”pattern”`表示文件名模式,可以是正则表达式或通配符。

举个例子,如果要在`/home`目录下查找以txt结尾的文件,可以使用如下命令:

“`

find /home -name “*.txt”

“`

如果要查找以数字开头和txt结尾的文件,可以使用如下命令:

“`

find /home -name “[0-9]*.txt”

“`

4. 在多个目录下查找文件名

如果要在多个目录下查找文件名,可以同时指定多个路径。例如,要在`/home/user1`和`/home/user2`目录下查找以txt结尾的文件,可以使用如下命令:

“`

find /home/user1 /home/user2 -name “*.txt”

“`

5. 在目录下查找特定类型的文件

如果要查找特定类型的文件,可以使用Linux系统中已经定义好的文件类型标识符。例如,要查找所有的图片文件,可以使用如下命令:

“`

find /home -type f -name “*.jpg”

“`

其中,`-type f`表示查找文件,`-name`指定要查找的文件名模式,`.jpg`表示目标文件名以.jpg结尾。同样,可以使用如下命令查找其他类型的文件:

– `d` : 查找目录。

– `c` : 查找字符设备文件。

– `b` : 查找块设备文件。

– `l` : 查找符号链接文件。

– `p` : 查找命名管道文件。

例如,要查找所有符号链接文件,在终端中输入如下命令:

“`

find /home -type l

“`

6. 在查找时忽略大小写

有些时候,文件名可能是大写、小写或大小写混合的。如果要在查找时忽略大小写,可以使用`-iname`选项来代替`-name`选项。例如,如下命令将会查找文件名以txt结尾,不区分大小写:

“`

find /home -iname “*.txt”

“`

7. 排除指定目录或文件

有时候,在查找文件时需要排除指定的目录或文件,可以使用`-prune`选项来排除。例如,要在`/home`目录下查找以txt结尾的文件,但是将`/home/user1`目录排除在外,则可以使用如下命令:

“`

find /home -path “/home/user1” -prune -o -name “*.txt” -print

“`

其中,`-path “/home/user1″`指定要排除的目录,`-prune`选项表示跳过指定的目录或文件,`-o`指定逻辑或,`-name “*.txt”`表示查找以txt结尾的文件,`-print`表示将文件名打印到终端中。

本文介绍了在Linux系统中使用正则表达式查找文件名的方法。虽然对于新手来说,正则表达式会有些困难,但是优秀的Linux程序员必须要掌握正则表达式的使用。这样就可以轻松地在Linux系统中找到所需要的文件了。可以结合实际操作多练习,加深对正则表达式的理解和应用能力。

相关问题拓展阅读:

linux操作系统利用find 命令如何查找某个目录的位置

linux操作系统利用find 命令查找某个目录位置方式如下:

find ./ -name 文件或文件夹名。

1.命令中的./ 指的是当前目录下,如果你要在整个系统下查找,可以用 / 即可;

2.在其他目录下,就将./ 变为其他目录的绝对路径即可。

如要查找‘/home/ubuntu’ 路搏尺径下的test目录 find /home/ubuntu -type d -name test。

扩展资料:

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的核银袜多用户网络操作系统。

Linux操作系统诞生于1991 年10 月5 日(这是第改激一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。

严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。

参考资料:

linux_百度百科

1、linux命令如果记不得,可以使用man命令来查看某个命令的使用。但对应初学者往往看不懂或者不知道什么场景下使用

2、输入find -name *history,意思是查询当前目录及子目录下所有以history结尾的文件

3、输入find -name mysql*,意思是查询当前目录及子目录下所有以mysql开头的文件

4、输入find -name mysql* -o -name *history,中间加个-o表示或的意思,就是以mysql开头或history结尾的文件

5、上面是例子没有搜索目录,默认是当前目录下,可以加上目录位置来指定特地的目录下搜索

6、有时候经常会需要查询最近10分钟修改过的文件,则可以输入find -mmin -10命令来查询

7、最后介绍下,在系统磁盘不足的情况下,需要清理大的垃圾临时文件时,如搜索大于100M的文件,find -type f -size +100M  -print0 | xargs -0 du -h,结果如图所示

扩展资料

Linux简介:

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用培指程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

Linux操作系统诞生于1991 年10 月5 日(这是之一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级凯孝计算机。

严格配孙配来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU工程各种工具和数据库的操作系统。

参考资料来源:

百度百科:Linux简介

如果你忘记了httpd.conf这个文件在系统的哪个目录下,可以使用如下命令来查找某个目录的位置:find / -name httpd.conf 

这个命令语法规则就是直接在find后面写上 -name,表明要求系统按照文件名查找,最后写上httpd.conf这个目标文件名即可。稍后系统薯羡猜会在计数型算机屏幕上显示出查找结果列表:etc/httpd/conf/httpd.conf 

扩展资料:

find的语法: find 寻找条件 操作

表述方式:find PATH OPTION  

find命令会根据用户给的option,也就是派兄寻找条件从用户给出的目录开始对其中文件及其下子目录中的文件进行递归搜索。该命令中的寻找条件可以是一个用逻辑运算符 not、and、or 组成的复合条件。

find命令的语法格式:

find  

find path -option {} \;

使用说明:

expression 中可使用的选项有二三十个之多,在此只介绍最常用的部分。

-exec:对搜索的结果执行指定的shell命令。注意格式要正确:”-exec 命令 {} \;”。注意“{}” 与\;之禅樱腊间有空格。

-mount,-xdev : 只检查和指定目录在同一个档案系统下的档案,避免列出其它档案系统中的档案

-amin -n : 在最近的 n 分钟内被读取过

-amin +n : 在 n 分钟之前被读取过

-anewer file : 比档案 file 更晚被读取过的档案

-atime -n : 在最近的 n 天内读取过的档案

-atime +n : 在 n 天前读取过的档案

-cmin -n : 在最近的 n 分钟内被修改过

-cmin +n : 在 n 分钟前被修改过

-cnewer file :比档案 file 更新的档案

-ctime -n : 在最近的 n 天内修改过的档案

-ctime +n : 在 n 天前修改过的档案颂兆

-empty : 空的档案-gid n or -group name : gid 是 n 或是 group 名称是 name

-ipath p,-path p : 路径名称符合 p 的档案,ipath 会忽略大小写

-name name,-iname name : 档案名称符合 name 的档案。iname 会忽略大小写

-size n : 档案大小 为 n 个由后缀决定的数据块。其中后缀含义为:

b: 代表 512 位元组的区块(如果用户没有指定后缀,贺滑则默认为 b)

c: 表示字节数

k: 表示 kilo bytes (1024字节)

w: 字 (2字节)

M:兆字节(字节)

G: 千兆字节 (字节)

-type c : 档案类型是 c 的档案。

d: 目录

c: 字型装置档案

b: 区块装置档案

p: 具名贮列

f: 一般档案

l: 符号连结

s: socket

-pid n : process id 是 n 的档案

你可以使用 () 将运算式分隔,并使用下列运算。

exp1 -and exp2

! expr

-not expr

exp1 -or exp2

exp1,exp2

范例:

将目前目录及其子目录下所有延伸档名是 c 的档案列出来。

# find . -name “*.c”

将目前目录其其下子目录中所有一般档案列出

# find . -ftype f

将目前目录及其子目录下所有最近 20 天内更新过的档案列出

# find . -ctime -20

查当前目录下的所有普通文件

#find . -type f -exec ls -l {} \;

例如:

# find -type f -ls // 如果不指定查找路径,则在当前路径查找

rwxrwxrwx   1 root     rootAug 15 21:41 ./f3

rwxr–rroot     rootAug 15 16:46 ./f1

rw—x–x   1 root     rootAug 15 17:50 ./f2

rw-r–rroot     rootAug 15 17:49 ./f1.gz

扩展资料:

find是linux 命令,它将档案系统内符合 expression 的档案列出来。你可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。

find 根据下列规则判断 path 和 expression,在命令列上之一个 – ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。

参考资料:

find(系统名)-百度百科

语法:find     

例如

1、find /var -name  “*.txt”

搜索find目录下以.txt结尾的文件

2、find /var -name “”

搜索/var目录下以所有字母开头的文件

3、find  /var -name “abc”

搜索在/var目录下以abc开头的文件

4、find /var -perm 644

搜索在/var目录下属性为644的文件

5、find  /var -user root

搜索在当/var目录下属主为root的文件

6、find /var -mtime -3

搜索/var 目录下更改时间再3天以内的文件

7、find /var -mtime +3

搜索在/var 目录下更改时间超过3天的文件

8、find /etc -type -d

搜亩闹索在/etc 目录下文件类型为d的目录文件

9、find /etc -type l

搜索在/etc 目录下文件类型为l的链接文件

10、find /var -size +c

搜索在/var目录下文件大小大于1M的文件 (字节为单位)

11、find  /var -perm 700 |xargs chmod 777

找出/var目录下所有权限为700的文件,并把其权限设置为777

12 find /var -type f |xargs ls -l

在/var目录下查找出文件并查看文件的详细信息

扩展资料

1、想查看当前文件夹及子文件夹迅念罩里有没有文件名为“abc”的文件

# find . -name abc

. :表示当前高迹目录

-name:表示要根据名称查找

2、想查看当前文件夹及子文件夹里有没有”xyz”目录

# find . -type d -name xyz

-type:表示设定类型,d表示文件夹类型,可以替换为f(普通文件)、l(链接文件)

3、想找出当前文件夹及子文件夹里所有后缀是”.txt”的文件

# find . -name “*.txt”#别忘了双引号

4、想查找当前目录及其子文件夹中“roc”用户自己的文件有哪些

# find . -user roc

-user:用于设定所属用户的名称,此处可替换为-group,即所属用户组的名称

5、想查找当前文件夹及子文件夹里权限设定为755的所有文件

# find . -perm 755

-perm:用于设定权限

6、想查找当前文件夹及子文件夹里的同时含有b字符和3字符的文件:用到正则表达式技术

# find . -regex ‘.*b.*3′

-regex:表示使用正则表达式进行匹配。请注意,此命令会和“全路径”进行匹配,也就是说前面要加.*,因为输出结果中会有“./”符号。

7、如果想全部输出用find命令查找出的”*.abc”文件的内容

# find . -type f -name “*.abc” -exec cat {} \;

-exec 表示由find找到的匹配项会作为“-exec后面设定的命令”的参数

可以使用-ok代替-exec,这样对每个匹配项进行操作,都会要求用户确认(y为是,n为否)

命令最后的{} \; 别忘了写,其中{}代表用find查找到的结果中的每一个查找项(文件名)。

find ./ -name “*.txt” -exec ls -l {} \;

查找当前目录的.txt文件并以列表形式列出来

find ./ -name “*.txt” -exec mv {} {}d \;

批量修改当前目录下.txt文件的后缀名改为.txtd

8、查找当前目录下在5分钟内被访问过的文件

# find . -amin -5

访问过用amin,修改过用mmin,文件状态改变过用cmin

精确到分钟的用amin,mmin,cmin,精确到天的用atime,mtime,ctime

在5分钟之内的用-5,在5分钟以上的用+5

9、想查找当前目录及子目录下文件大小大于10M的所有文件

# find . -size +c

-size:表示文件大小,+表示大于某个数,-表示小于某个数。c表示单位是字节,你可以将c换成k,M,G。

10、上述所有的find命令都是查找当前目录及其子目录。如果不想深入到子目录中,而是只查找当前一层目录,则可以:

# find . -maxdepth 1 -name “*.c”

11、或/非查询

find –name ’tmp’ –o –name ’mina*’

% 该命令查询文件名为’tmp’或是匹配’mina*’的所有文件。

find ! –name ’tmp’

% 该命令查询文件名不是’tmp’的所有文件。

-o和!都是针对直接跟着的条件而言的,比如

find . ! -name “*.zip” -type f:查找文件类型的,且不以zip结尾的文件

Linux中在当前目录下查找某个文件。

在 Linux 中查找文件有两种方法。一种是使用 find 命令,另外一种是使用 locate 命令。

1、Find 命令

使用 Linux find 命令可以用不同的搜索标准如名字、类型、所属人、大小等来搜索目录树。基本语法如下:

# find path expression search-term 

下面是使用 find 命令根据文件名来查找特定文件的一个例子:

# find -name test.file 

命令会搜索整个目录树来查找名为 test.file 的文件,并且会提供其存放位置。你可以使用你 Linux 上一个存在的文件名来尝试一下。

find 命令有时会花费几分钟来查找整个目录树,尤其是如果系统中有很多文件和目录的话。要显著减少时间,你可以指定搜索的目录。比如,如果你知道 /var 中存在 test.file,那就没有必要搜索其它目录。这样,你可以使用下面的命令:

# find /var -name test.file 

find 还可以根据时间、大小、所属人、权限等选项搜索文件。要了码闭解更多关于这些选项的信息,你可以使用查看** Linux find 命令**的手册。

# man find 

2、locate 命令

要在Linux中使用locate命令,首先需要安装它。

如果你正在使用 Ubuntu,运行下面的命令来安装 locate:

# apt-get update # apt-get install mlocate 

如果你使用的是 CentOS ,运行下面的命令来安装 locate:

# yum install mlocate 

locate 是一种比 find 更快的方式,因为它在数据库中查找文件。要更新搜索数据库,运行下面迟段裂的命令:

# updatedb 

使用 locate 查找文件的语法:

# locate test.file 

就像 find 命令一样,locate 也有很多选项来过滤输出。要了解更多你可以查看Linux Locate 命令的手燃枣册。

# man locate 

1、打开shell连接工具,连接上服厅高务器,pwd查看当前目录,一般进来默认在主目录下。

2、通过命令:cd /切换到主目录下,然后pwd查看当前目录,并用ls可以查看当前目录下的文件及目录。

3、假如要找一个nginx配置文件nginx.conf,那么可以通过find命令查找:find . -name ‘nginx.conf’。

4、假如不知道文件的具昌伏槐体名字只是模糊记得几个关键的单词,那么就可以通过模糊匹配耐友去搜索:find 目录 -name ‘*nginx*’ 查找即可。

Linux中在当前目录下查找某个文件可以使用find命令。

1、比如在/usr/lib下查找klibc的唤梁文件,进入/usr/lib目录后,可以执行

find . -name “klibc”

说明:find命令洞返用于查找文和颤运件,后面的“.”代表当前目录,-name是find命令的参数,后面接要搜索的文件名。

2、如果不明确文件名称,可以使用通配符

find . -name “*libc*”

首先,查找文件不能用grep,grep命令用于在一个或多个文件中查找关键字(可以是字符串,也可氏搏如以是正则表达式),而不是查找文件。

其次,Linux下查找文件可以用whereis、locate或者find命令。如果是快速搜索文件,更好是用whereis或者locate命令,它们的查找速度要比find命令快很多,这是因为在Linux系统中有个数据库,记录了系统内的所有文件,而whereis和locate命令就是在这个数据库中查找,并没有实际查找硬盘,而数据库查找往往是非常快的;而find命令是直接查找硬盘,如果硬盘文件比较多,就比较费时间。

注意一点:whereis和locate命令的数据库是一天更新一次,所以有时候会找到已经删除的文件,还会有找不歼启到最新刚刚创建文件的情况,当明明记得有却找不到时,就用find命令来查找。

最后,根据你的问题,银竖查找当前目录文件,可以在当前目录下执行find命令的-name参数。

find用法:

find 要查找的路径 参数

-name参数:指定要查找的文件名

-user参数:指定要查找的文件所属用户

-type参数指定查找文件的类型,分别有d目录、l连接文件、s socket文件等

find命令查找文件

find . -name “filename”

linux有个正则表达式不知道怎么写 例如:我有个目录A,下面有i-XXXXXXXX这样名字的子目

find A/ -name “i-*”

sed -i ‘s:A/i-.\{8\}:B:g’ filename

注意我袭拆这个正则表达式用单拍皮枣引号括住。

x\{m\}

x\{m,\}

x\{m, n\}

根据字符x出现的次数匹握段配:

m次;大于等于m次;大于等于m次但小于等于n次

关于linux find name 正则的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » Linux 查找文件名正则表达式 (linux find name 正则)