find与grep命令简介及正则表达式

find与grep命令简介及正则表达式

ID:30360940

大小:85.99 KB

页数:16页

时间:2018-12-29

find与grep命令简介及正则表达式_第1页
find与grep命令简介及正则表达式_第2页
find与grep命令简介及正则表达式_第3页
find与grep命令简介及正则表达式_第4页
find与grep命令简介及正则表达式_第5页
资源描述:

《find与grep命令简介及正则表达式》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、find与grep命令简介及正则表达式写给大家看的Shell脚本编程入门教程索引两个更为有用的命令和正则表达式在我们开始学习新的Shell编程知识之前,我们先来看一下两个更为有用的两个命令,这两个命令虽然并不是Shell的一部分,但是在进行Shell编程时却会经常用到.随后我们会来看一下正则表达式.find命令我们先来看的是find命令.这个命令对于我们用来查找文件时是相当有用的,但是对于Linux新手来说却有一些难于使用,在一定程序是由于他所带的选项,测试,动作类型参数,而且一个参数的执行结果会影响接下来的参

2、数.在我们深入这些选项和参数之前,我们先来看一个非常简单的例子.假如在我们的机子上有一个文件wish.我们来进行这个操作时要以root身份来运行,这样就可以保证我们可以搜索整个机子:#find/-namewish-print/usr/bin/wish#正如我们可以想到的,他会打印出搜索到的结果.很简单,是不是?然而,他却需要一定的时间来运行,因为他也会同时搜索网络上的Window机器上的磁盘.Linux机器会挂载大块的Window机器的文件系统.他也会同时那些位置,虽然我们知道我们要查找的文件位于Linux机器

3、上.这也正是第一个选项的用武之地.如果我们指定了-mount选项,我们就可以告诉find命令不要搜索挂载的目录.#find/-mount-namewish-print/usr/bin/wish#这样我们仍然可以搜索这个文件,但是这一次并没有搜索挂载的文件系统.find命令的完整语法如下:find[path][options][tests][actions]path是一个很简单的部分:我们可以使用绝对路径,例如/bin,或者是使用相对路径,例如..如果我们需要我们还可以指定多个路径,例如find/var/home

4、主要的一些选项如下:-depth在查看目录本身以前要先搜索目录中的内容-follow跟随符号链接-maxdepthsN在搜索一个目录时至多搜索N层-mount(或-xdev)不要搜索其他的文件系统下面的是一些test的选项.我们可以为find命令指定大量的测试,并且每一个测试会返回真或是假.当find命令工作时,他会考查顺序查找到的文件,并且会在这个文件上按顺序进行他们所定义的测试.如果一个测试返回假,find命令会停止他当前正在考查的文件并继续进行下面的动作.我们在下表中列出的只是一些我们最常用到的测试,我们

5、可以通过查看手册页得到我们可以利用find命令使用的可能的扩展列表项.-atimeNN天以前访问的文件-mtimeNN天以前修改的文件-namepattern除了路径,与指定的类型匹配的文件名.为了保证指定的类型传递给find命令而并不是立即被Shell赋值,指定的类型必须用引号进行引用.-newerotherfile与otherfile文件相比要新的文件-typeCC类型的文件,而这里的C可以指定的一种类型.最常用的是d代表目录,而f是指普通的文件.对于其他的文件类型,我们可以查看手册页.-userusern

6、ame指定的用户所拥有的文件我们也可以使用运算符进行测试的组合.大多数的有两种格式:短格式和长格式.!-not测试的反-a-and所有的测试必须为真-o-or测试中某一个为真我们可以使用括号来强行改变测试和运算符的次序.因为这些对于Shell来说有着特殊的意义,所以我们也需要使用反斜线将他们作为一个整体进行引用.另外,如果我们为文件名指定了匹配类型,我们也必须用引号进行引用,这样就可以避免他们被Shell进行扩展,从而可以将他们直接传递给find命令.所以如果我们要写一个这样的测试,要查找比X文件要近或者是以一

7、个范围开头的文件,我们要写成下面的形式:1.(-newerX-o-name"_*")复制代码现在我们要试着在当前的目录下查找最近修改日期比while2更近的文件,我们可以用下面的命令:$find.-newerwhile2-print../elif3./words.txt./words2.txt./_trap$我们在上面所用的命令看起来似乎不错,但是我们却同时也搜索了当前的目录文件,而这并不是我们所希望的,我们所感兴趣只是常规文件.所以我们可以加上另外一个测试-typef:$find.-newerwhile2

8、-typef-print./elif3./words.txt./words2.txt./_trap$工作原理:这些命令是如何进行工作的呢?我们指定find命令应该在当前的目录下进行查找(.),而我们所要查找的是比while2更新的文件(-newerwhile2),而且如果已经传递了测试,还要测试这个文件是否为一个常规文件(-type-f).最后,我们使用我们以前用过的动作,-print

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。