中易网

linux find能搜索文件里面的内容吗?

答案:4  悬赏:60  
解决时间 2021-01-14 18:55
  • 提问者网友:不要迷恋哥
  • 2021-01-14 09:54
linux find能搜索文件里面的内容吗?
最佳答案
  • 二级知识专家网友:廢物販賣機
  • 2021-01-14 10:01
find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。若跟据文件的内容进行查找,需使用grep命令。
说明:
1、find命令的一般形式为find [PATH] [option] [action]
find命令部分选项说明:
-amin<分钟>:查找在指定时间曾被存取过的文件或目录,单位以分钟计算;
-atime<24小时数>:查找在指定时间曾被存取过的文件或目录,单位以24小时计算;
-cmin<分钟>:查找在指定时间之时被更改过的文件或目录;
-ctime<24小时数>:查找在指定时间之时被更改的文件或目录,单位以24小时计算;
-daystart:从本日开始计算时间;
-exec<执行指令>:假设find指令的回传值为True,就执行该指令;
-false:将find指令的回传值皆设为False;
-gid<群组识别码>:查找符合指定之群组识别码的文件或目录;
-group<群组名称>:查找符合指定之群组名称的文件或目录;
-help或--help:在线帮助;  -inum:查找符合指定的inode编号的文件或目录;
-ls:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出;
-maxdepth<目录层级>:设置最大目录层级;
-mindepth<目录层级>:设置最小目录层级;
-mmin<分钟>:查找在指定时间曾被更改过的文件或目录,单位以分钟计算;
-mount:此参数的效果和指定“-xdev”相同;
-mtime<24小时数>:查找在指定时间曾被更改过的文件或目录,单位以24小时计算;
-name<范本样式>:指定字符串作为寻找文件或目录的范本样式;
-newer<参考文件或目录>:查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录;
-nogroup:找出不属于本地主机群组识别码的文件或目录;
-noleaf:不去考虑目录至少需拥有两个硬连接存在;
-nouser:找出不属于本地主机用户识别码的文件或目录;
-ok<执行指令>:此参数的效果和指定“-exec”类似,但在执行指令之前会先询问用户,若回答“y”或“Y”,则放弃执行命令;
-path<范本样式>:指定字符串作为寻找目录的范本样式;
-perm<权限数值>:查找符合指定的权限数值的文件或目录;
-print:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为每列一个名称,每个名称前皆有“./”字符串;
-print0:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为全部的名称皆在同一行;
-printf<输出格式>:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式可以自行指定;
-size<文件大小>:查找符合指定的文件大小的文件;
-type<文件类型>:只寻找符合指定的文件类型的文件;
-uid<用户识别码>:查找符合指定的用户识别码的文件或目录;
-used<日数>:查找文件或目录被更改之后在指定时间曾被存取过的文件或目录,单位以日计算;
-user<拥有者名称>:查找符和指定的拥有者名称的文件或目录;
-xdev:将范围局限在先行的文件系统中;
-xtype<文件类型>:此参数的效果和指定“-type”参数类似,差别在于它针对符号连接检查。
2、grep命令的一般形式为grep [options]
grep命令部分参数说明
-c:只输出匹配行的计数。
-I:不区分大 小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及 行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
pattern正则表达式主要参数:
\: 忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
\<:从匹配正则表达 式的行开始。
\>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求 。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
。:所有的单个字符。
* :有字符,长度可以为0。
全部回答
  • 1楼网友:北城痞子
  • 2021-01-14 12:21
比方你要在 /path 下搜索名为 test.txt 的文件,并显示其内容 find /path -name "test.txt" -exec cat {} \\; # find . -type f -print追问find能以文件里面内容为条件搜索吗?
  • 2楼网友:毛毛
  • 2021-01-14 11:37
直接用grep abc*
就只查找当前目录下包含abc字符的文件;
或者grep -r abc *
就只查找当前目录下及子目录下包含abc字符的文件;
不一定非要用find
  • 3楼网友:七十二街
  • 2021-01-14 10:32
find 文件查找命令,用find命令在我们的系统中查找所需的文件。
搜索文件里面的内容一般用grep,grep 文本搜索,是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。可以使用grep命令在文件中查找指定的字符串。
-n 在匹配的行前面打印行号
-w 精确查找
例:1、grep aaa test.txt
(在test.txt中搜索包含aaa内容)
2、grep –wn aaa test.txt
(在test.txt文件中搜索aaa)
3、grep –wn aaa *
(在当前目录下的所有文件中搜索aaa)追问如果要查找电脑上文件里面含有“你好”的文件,该怎么搜索呢?感谢回答!追答grep "你好" -rn ./
你试试追问如果我想打印出含有"你好"的所有文件名,该怎么输入命令呢?追答grep "你好" -rl ./
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息