Linux学习—find命令使用技巧

1、查找文件Linux中查找文件的命令为“find”命令,syntax:find [起始目录] 寻找条件 操作如,从根目录下开始查找abc.cpp文件find / -name abc.cpp 在当前目录下所有.cpp文件find . -name “*.cpp”find命令,配合-exec参数,可以对查询的文件进行进一步的操作-exec 参数后面跟的是command命令,它的终止是以;为结束标志的,所以这句命令后面的分号是不可缺少的,考虑到各个系统中分号会有不同的意义,所以前面加使用转义符反斜杠 ‘\’。xargs展开find获得的结果,使其作为grep的参数find ./ -name “*.tmp” -exec rm -rf “{}” /;删除所有的临时文件但是rm mv等命令对大量文件操作是报错 -bash: /bin/rm: Argument list too long可用xargs 解决删除当前目录下所有.cpp文件find . -name “*.tmp” | xargs rmfind命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。find与grep配合使用,用来查找指定目录下的文件内容。grep用于查找文件中的字符串,或能匹配正则表达式的行grep命令grep (global search regular expression_r(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep正则表达式元字符集(基本集)^ 锚定行的开始 如:’^grep’匹配所有以grep开头的行。$ 锚定行的结束 如:’grep$’匹配所有以grep结尾的行。. 匹配一个非换行符的字符 如:’gr.p’匹配gr后接一个任意字符,然后是p。* 匹配零个或多个先前字符 如:’*grep’匹配所有一个或多个空格后紧跟grep的行。 .*一起用代表任意字符。[] 匹配一个指定范围内的字符,如'[Gg]rep’匹配Grep和grep。[^] 匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep’匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。(..) 标记匹配字符,如:'(love)’,love被标记为1。&; 锚定单词的开始,如:’\> 锚定单词的结束,如’grep&;’匹配包含以grep结尾的单词的行。x{m} 连续重复字符x,m次,如:’o{5}’匹配包含连续5个o的行。x{m,} 连续重复字符x,至少m次,如:’o{5,}’匹配至少连续有5个o的行。x{m,n} 连续重复字符x,至少m次,不多于n次,如:’o{5,10}’匹配连续5–10个o的行。\w 匹配一个文字和数字字符,也就是[A-Za-z0-9],如:’G\w*p’匹配以G后跟零个或多个文字或数字字符,,然后是p。\W w的反置形式,匹配一个非单词字符,如点号句号等。\W*则可匹配多个。\b 单词锁定符,如: ‘\bgrep\b’只匹配grep,即只能是grep这个单词,两边均为空格。find、grep、xargs经常配合使用,如下:find -name “.cpp” |xargs grep ‘test’ 查找当前目录下所有的cpp文件中包含test的行。作者:

有理想在的地方,地狱就是天堂

Linux学习—find命令使用技巧

相关文章:

你感兴趣的文章:

标签云: