Linux 文件命令精通指南(三)

发表于:2011-4-19 09:42

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Sheryl Calish    来源:51Testing软件测试网采编

分享:

  更多的滤波器

  Grep、fgrep 和 egrep 都显示匹配一种模式的行。所有这三个命令都在文件中搜索指定的模式,如果您想不起来一个所需文件的名称,这将非常有用。基本格式是:

  grep [options] PATTERN [FILE...]

  $ grep -r 'Subject' nsmail

  CTRL-Z 将终止上述或其它任何命令。

  grep 的最有用的选项可能是 -s。如果您以除根用户之外的任何身份搜索系统文件,那么对于每一个您没有访问权限的文件,都将产生错误消息。这个命令禁止那些消息。

  Fgrep(也以 grep -F 调用)只查找固定的字符串,而不是 grep 接收的正则表达式。而 egrep 接收包含更大范围的特殊字符(如 “|”,它指示条件 OR 运算符)的模式。

  $ egrep 'Subject|mailto' *

  查找文件

  find 命令的 GNU 版本非常强大、灵活并且比 UNIX 系统上存在的经典版本更具包容性。它对于涉及到目录结构的任务非常有用,包括在文件上查找和执行命令。find 命令的基本格式是:

  $ find startdirectory options matchcriteria [actionoptions]

  如果您知道文件的名称、或者甚至名称的一部分,但不知道它所处的目录,您可以这么做:

  $ find .-name 'test*'

  ./test

  ./jdevhome/mywork/EmpWS/EmpBC4J/test

  与经典的 UNIX 系统不同,在 Linux 中不需要在末尾添加 -print 操作,因为如果没有指定其它的操作选项,就将假定执行这个操作。在目录起始位置上的一个点 ( . ) 将使 find 在您的工作目录中开始搜索。两个点, ..,在父目录中开始搜索。您可以在任意目录下开始搜索。

  注意,您可以使用通配符作为搜索准则的一部分(只要用单引号将整个项目括起来)。

  $ find .-name 'test*' -print

  ./test.out

  ./test2.out

  显示拥有 .out 扩展名的一系列文件:

  $ find /home -name '*.out'

  不过记住,除非您是作为超级用户运行这个命令,否则您将可能得到许多的 "Permission denied" 错误消息。

  最强大的搜索工具之一是和 grep 一起使用的 -exec 操作:

  $ find .-name '*.html' -exec grep 'mailto:foo@yahoo.com' {} \;

  这里,我们让 find 命令在当前目录中开始执行, .,查找一个 html 文件,*.html,并在当前文件上执行 (-exec) grep 命令,{}。当使用 -exec 操作时,需要一个分号 ;,这是用来在使用 find 命令时执行其它一些操作。需要反斜线 \ 和引号来确保这些项目通过 BASH,以使它们由命令而不是 shell 来进行解释。

  立即掌握 Linux 文件命令

  在 Linux 中提供了许多有用的命令和利用它们的强大的方法,在此无法一一说明。此外,完成许多任务通常都存在多种方法。

  我们已经看到了一些最常用和最有启发意义的 Linux 文件命令。掌握这些基础但却关键的工具将使您的 Linux 学习走上快车道。利用您手头上的 man 页面,和试验的积极性,您现在拥有了足够的信息来开始探索 Linux 文件操作的力量。

相关链接:

Linux 文件命令精通指南(一)

Linux 文件命令精通指南(二)

22/2<12
2023测试行业从业人员调查问卷已开启,千元大奖正在等你~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2023
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号