如何使用shell遍历目录及其子目录中的所有文件?
创建新的外壳文件。
输入以下代码
执行指令
grep与find的区别?
使用linux时,经常需要查找文件。其中find和grep是主要命令。这两个命令有所不同。
差异:
(1)查找命令是根据文件的属性进行查找,如文件名、文件大小、所有者、所属组、是否为空、访问时间、修改时间等。
(2)grep根据文件的内容进行搜索,按照给定的模式匹配文件的每一行。
以下是对两者区别的详细解释:
查找命令:
基本格式:findpath表达式
1.按文件名搜索
(1)find/-name#在根目录中查找文件,也就是搜索整个硬盘。
(2)在/etc目录中找到/etc-name#文件。
(3)find/etc-name#39*srm*#39#使用通配符*(0或任何倍数)。意思是用字符串srm在/etc目录下的文件名中。
(4)寻找。-name#39srm*#39#表示查找文件名以字符串srm在当前目录中。
2.根据文件特征搜索
(1)find/-amin-10#查找系统中最近10分钟内访问过的文件(访问时间)。
(2)find/-atime-2#查找系统中最近48小时内访问过的文件。
(3)find/-empty#查找系统中为空的文件或文件夹。
(4)find/-groupcat#查找系统中组为cat的文件。
(5)find/-mmin-5#在系统中查找最近5分钟内修改的文件(修改时间)
(6)find/-mtime-1#查找系统中最近24小时内修改的文件。
(7)find/-userfred#在系统中查找属于用户fred的文件。
(8)find/-size10000c#找出大于10000000字节的文件,(c:字节,w:,:kb,m:mb,:gb)。
(9)find/-size-1000k#找出小于1000kb的文件。
3.使用混合搜索方法查找文件
参数是:!,-和(-a),-或(-o).
(1)查找/tmp-size10000c-and-mtim:。
基本格式:查找表达式
1.主要参数
[选项]主要参数:
-c:只输出匹配行数。-i:不区分大小写。
-h:查询多个文件时不显示文件名。
-l:查询多个文件时,只输出包含匹配字符的文件名。
-n:显示匹配的行和行号。
-s:不显示不存在或没有匹配文本的错误消息。
-v:显示不包含匹配文本的所有行。
模式正则表达式的主要参数:
:忽略正则表达式殊字符的本义。
:匹配正则表达式的起始行。
$:匹配正则表达式的结束行。
lt:从匹配正则表达式的那一行开始。
gt:匹配正则表达式的行尾。
【】:单字符,如【a】,即a符合要求。
[-]:range,比如[a-z],即a,b,c,z都满足要求。
。:所有单个字符。
*:有字符,长度可以为0。
第二步:例子
(1)grep#39test#39d*#显示以d开头的文件中包含test的所有行
(2)grep;测试与测试。;aabbcc#显示aa、bb和cc文件中包含测试的行。
(3)grep;{5}aa#显示包含每行至少有5个连续小写字符的字符串的所有行。
(4)grepmagic/usr/src#显示/usr/src目录(不包括子目录)中的文件包含魔线。
(5)grep-rmagic/usr/src#显示包含magic的/usr/src目录下的文件(包括子目录)中的行。
(6)grep-w模式文件:只匹配整个单词,不匹配部分字符串(如matching魔术与表演。;而不是神奇的)
原文标题:linux搜索文件命令find怎么用 如何使用Shell遍历目录及其子目录中的所有文件?,如若转载,请注明出处:https://www.bjtdsx.com/bjtdsx4/33484.html
免责声明:此资讯系转载自合作媒体或互联网其它网站,「天地水秀」登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。