一招get!Linux批量搜索文件妙招解析 (linux如何批量搜索文件)

Linux作为一款广泛使用的开源操作系统,其优势在于它使用简单、稳定性高以及多样化的配合技巧。其中,Linux中的文件搜索功能对于管理者或者开发者来说,是一个十分必要的工具。这篇文章将会介绍Linux批量搜索文件的妙招,让你可以快速找到你想要的文件。

基本语法

在Linux中,搜索文件的命令为”find”,整个命令的基本语法如下:

“`

find [指定目录] [搜索条件] [执行命令]

“`

其中,”[指定目录]”参数可以省略,如果省略的话,默认会在当前目录中搜索。”[搜索条件]”则是可以根据用户需求,通过查找文件名、目录名、文件权限等多种方式指定搜索条件。同时,”[执行命令]”参数可以执行不同的逻辑,包括删除、打印等。

拓展搜索条件

下面是一些常见的搜索条件:

**1. 搜索指定文件名**

“`

find / -name “filename”

“`

其中”/”表示从根目录开始搜索,”filename”为具体的文件名。如果要搜索带有某关键字的文件,可以用通配符匹配,例如:

“`

find / -name “*keyword*”

“`

这个命令会在根目录开始搜索所有带有”keyword”关键字的文件。

**2. 搜索指定目录**

“`

find [指定目录] -name “filename”

“`

其中,”[指定目录]”为具体的目录名,例如:

“`

find /home -name “filename”

“`

这个命令会在”/home”目录下查找名为”filename”的文件。

**3. 搜索文件类型**

“`

find / -type [文件类型]

“`

其中,”[文件类型]”可以指定多种类型,例如:

– “f”:普通文件;

– “d”:目录;

– “l”:符号链接;

– “b”:块设备;

– “c”:字符设备;

例如,如果要搜索所有的目录:

“`

find / -type d

“`

**4. 搜索文件大小**

可以通过文件大小来查找文件,例如:

“`

find / -size +100M

“`

这个命令会查找所有大小超过100M的文件。其中”+100M”表示文件大小大于100M,”-100M”表示文件大小小于100M,”100M”表示文件大小等于100M。

更多搜索条件可以通过”man find”来查看。

使用-xargs命令

-xargs命令可以将find命令的结果作为另一个命令的参数进行执行。这个命令的基本用法如下:

“`

find [指定目录] [搜索条件] -print | xargs [执行命令]

“`

其中,”-print”表示输出结果,”| xargs”表示将结果作为另一个命令的参数。例如,如果想要删除所有以”.txt”结尾的文件,可以输入以下代码:

“`

find / -type f -name “*.txt” -print | xargs rm -f

“`

这个命令会将find命令的结果中以”.txt”结尾的文件名全部删除。

通过使用Linux中的find命令,结合一些搜索条件以及使用xargs命令,可以快速、便捷地搜索文件及进行一些文件操作。这些技巧可以大大提高工作效率。如果在使用搜索命令时出现问题,可以通过”man”命令进行查找及解决。

相关问题拓展阅读:

Linux下有没有像everything一样快速搜索文件的工具

一:locate命令 如果没有安装,通过 dnf install mlocate -y进行安装,

locate命令用于查找文件,它比find命令的搜索速度快,它需要一个数据库,这个数据库由每天的例行工作(crontab)程序来建立。当我们建立好这个数据库后,就可以方便地来搜寻所需文件了。

即先运行:updatedb(无论在那个目录中均可,可以放在crontab中 )后在 /var/lib/slocate/ 下生成 slocate.db 数据库即可快速查找。在命令提示符下直接执行#updatedb 命令即可:

例如:查找相关字issue

$ locate issue

/etc/issue

/etc/issue.net

/usr/man/man5/issue.5

/usr/man/man5/issue.net.5

二:find命令:

功能:在目录结构中搜索文件,并执行指定的操作。此命令提供了相当多的查找条件,功能很强大。

语法:find 起始目录 寻找条件 操作

说明:find命令从指定的起始目录开始,递归地搜索其各个子目录,查找满足寻找条件的文件并对之采取相关的操作。

该命令提供的寻找条件可以是一个用逻辑运算符not、and、or组成的复合条件。逻辑运算符and、or、not的含义为:

(1)and:逻辑与,在命令中用“-a”表示,是系统缺省的选项,表示只有当所给的条件都满足时,寻找条件才算满足。例如:

$ find –name ’tmp’ –xtype c -user ’inin’

该命令寻找三个给定条件都满足的所有文件。

(2)or:逻辑或,在命令中用“-o”表示。该运算符表示只要所给的条件中有一个满足时,寻找条件就算满足。腔激例如:

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

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

(3)not:逻辑非,在命令中用“!”表示。该运算符表示查找不满足所给条件的文件。例如:

$ find ! –name ’tmp’

该命令查询文件名不是’tmp’的所有瞎雀文磨圆早件。

需要说明的是:当使用很多的逻辑选项时,可以用括号把这些选项括起来。为了避免Shell本身对括号引起误解,在话号前需要加转义字符“”来去除括号的意义。

例:$ find (–name ’tmp’ –xtype c -user ’inin’ )

寻找条件有以下选项:

首先,下列各个选项中的n值可以有三种输入方式,假设n为20,则:

+20 表示20以后(21,22,23等)

-20 表示20以前(19,18,17等)

20 表示正好是20

1. 以名称和文件属性查找。

– name ’字串’ 查找文件名匹配所给字串的所有文件,字串内可用通配符*、?、[ ]。

– lname ’字串’ 查找文件名匹配所给字串的所有符号链接文件,字串内可用通配符*、?、[ ]。

-gid n 查找属于ID号为n的用户组的所有文件。

-uid n 查找属于ID号为n的用户的所有文件。

-group ’字串’ 查找属于用户组名为所给字串的所有的文件。

-user ’字串’ 查找属于用户名为所给字串的所有的文件。

-empty 查找大小为0的目录或文件。

-path ’字串’ 查找路径名匹配所给字串的所有文件,字串内可用通配符*、?、[ ]。

-perm 权限 查找具有指定权限的文件和目录,权限的表示可以如711,644。

-size n[bckw] 查找指定文件大小的文件,n后面的字符表示单位,缺省为b,代表512字节的块。

-type x 查找类型为x的文件,x为下列字符之一:

b 块设备文件

c 字符设备文件

d 目录文件

p 命名管道(FIFO)

f 普通文件

l 符号链接文件(symbolic links)

s socket文件

-xtype x 与-type基本相同,但只查找符号链接文件。

2. 以时间为条件查找

– amin n 查找n分钟以前被访问过的所有文件。

– atime n 查找n天以前被访问过的所有文件。

– cmin n 查找n分钟以前文件状态被修改过的所有文件。

– ctime n 查找n天以前文件状态被修改过的所有文件。

– mmin n 查找n分钟以前文件内容被修改过的所有文件。

– mtime n 查找n天以前文件内容被修改过的所有文件。

3. 可执行的操作

– exec 命令名称 {} 对符合条件的文件执行所给的Linux 命令,而不询问用户是否需要执行该命令。{}表示命令的参数即为所找到的文件;命令的末尾必须以“ ;”结束。

– ok 命令名称 { } 对符合条件的文件执行所给的Linux 命令,与exec不同的是,它会询问用户是否需要执行该命令。

– ls 详细列出所找到的所有文件。

– fprintf 文件名 将找到的文件名写入指定文件。

– print 在标准输出设备上显示查找出的文件名。

– printf 格式 格式的写法请参考有关C语言的书。

例1:查找当前目录中所有以main开头的文件,并显示这些文件的内容。

$ find . – name ‘main*’ – exec more {} ;

例2:删除当前目录下所有一周之内没有被访问过的a .out或*.o文件。

$ find . (- name a.out – o – name ‘*.o’)

> – atime +7 – exec rm {} ;

说明如下:

命令中的“.”表示当前目录,此时find将从当前目录开始,逐个在其子目录中查找满足后面指定条件的文件。(和)表示括号(),其中的“”称为转义符。之所以这样写是由于对Shell而言,(和)另有不同的含义,而不是这里的用于组合条件的用途。“- name a.out”是指要查找名为a.out的文件;“- name ‘*.o’”是指要查找所有名字以 .o结尾的文件。这两个- name之间的- o表示逻辑或(or),即查找名字为a.out或名字以 .o结尾的文件,find在当前目录及其子目录下找到这佯的文件之后,再进行判断,看其最后访问时间是否在7天以前(条件-atime +7),若是,则对该文件执行命令rm(- exec rm{ };)。其中{ }代表当前查到的符合条件的文件名,;则是语法所要求的。上述命令中之一行的最后一个是续行符。当命令太长而在一行写不下时,可输入一个,之后系统将显示一个>,指示用户继续输入命令。

linux怎样搜索文件或文件夹

linux里搜索文件或者文件夹的命令如下:

find

/

-name

文件或文件夹名

/指的是根目手圆录,如果你能知道文件在哪个具体的目录下毕卖塌面,使用具体目录路配耐径替代/

即可,这样会更快

用命令行搜索似乎可行伏信,但是不够人性化。

如果你用的是缺态轮suse那就很方便了,桌面就有文件搜索工具。

其他版本的好像要开起什么闭昌索引服务程序才行,具置找找看。

linux如何批量搜索文件的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux如何批量搜索文件,一招get!Linux批量搜索文件妙招解析,Linux下有没有像everything一样快速搜索文件的工具,linux怎样搜索文件或文件夹的信息别忘了在本站进行查找喔。


数据运维技术 » 一招get!Linux批量搜索文件妙招解析 (linux如何批量搜索文件)