linux查找当前目录下所有子目录特定文件类型需要查找的文件内容

2024-11-15 19:42:14
推荐回答(4个)
回答(1):

1、登录Linux系统之后打开终端,确定你要找关键字的目录。

2、查看下当前目录下所有的文件,你所要找的关键字就在当前目录下某个文件里面。

3、find -type f -print这个命令可以列出当前目录下的所有文件。

4、type后面的f是file的意思,所以只列出文件,而排除文件夹。

5、接下来只要在find命令后面加上exec命令就可以实现。

回答(2):

1、find [选项] [目录] [条件] [动作]

 

如果不指定任何目录,find 将会查找当前目录。如果 不指定条件,则条件相当于“true”,这样会把全部文件都找出来。选项、条件和动作的设置十分繁多,  看看 几个参数选项:

-xdev:不在其它文件系统的目录中搜索。

-mindepth :搜索文件时至少要深入到指定目录的第 n 层子目录。

-maxdepth :搜索文件时最多深入到指定目录的第 n 层子目录。

-follow:如果符号链接到目录,则跟随符号链接进入。默认情况下,find 不跟随链接。

-daystart:当使用与事件相关的测试时(见下文),将当天的开始时间作为时间戳,而不是默认值(从当前时间倒退24个小时)。

条件可以是一个或多个原子测试。这是一些有用的测试:

-type <文件类型>:搜索给定类型的文件。文件类型可以是以下之一:f(普通文件)、d(目录)、l(符号链接)、s(套接字)、b(块模式文件)、c(字符模式文件)或p(命名管道)。

-name <模式>:查找文件名与给定模式匹配的文件。使用此选项,模式将被看作shell 全局模式(参见“Shell 通配符”一节)。

-iname <模式>:与 -name 类似,但不区分大小写。

-atime 、-amin :查找上次访问时间在 n 天前(-atime)或 n 分钟前(-amin) 的文件。您还可以指定 <+n> 或 <-n>,这代表要搜索访问时间在至多或者至少 n 天/分钟前的文件。

-anewer <文件>:查找上次访问时间晚于文件的文件。

-ctime 、-cmin 、-cnewer :与 -atime、-amin 和 -anewer 相同,但比较的是文件上次修改的时间。

-regex <模式>:与 -name 相同,但模式将被看作正则表达式。

-iregex :与 -regex 相同,但不区分大小写。


2、利用find加grep,find找出文件,grep查找文件内容

# find . -type f -print | xargs grep "hostname"

用grep命令在所有的普通文件中搜索hostname这个词

回答(3):

find ./ -name *.h|xargs grep "test"
表示从当前目录以及其所有子目录下的所有后缀为:.h的文件中,搜索包含字符串"test"的文件

回答(4):

find加cat命令
具体你查看命令的帮助信息。