扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
在本页阅读全文(共3页)
假设您想要删除 home 目录中的大部分 .txt 文件,但希望能够逐个文件地执行该操作。像 UNIX 中的 rm 命令那样的删除操作是很危险的,因为当使用像 find 这样的自动化处理方式来查找文件时,它可能一不小心会删除重要的文件,您也许希望在删除这些系统查找到的文件之前对其进行仔细检查。下面的命令列出了您的 home 目录中所有的 .txt 文件。要删除这些文件,必须在 find 命令通过列出文件名提示您确认操作时输入 Y 或者 y: $ find $HOME/. -name *.txt -ok rm {} \; 它列出了查找到的每个文件,并且系统将暂停以等待您输入 Y 或者 y。如果您按下 Enter 键,系统将不会删除该文件。
您可以使用 find 命令来清除目录或子目录中在正常使用过程中生成的临时文件,这样可以节省磁盘空间。要实现该操作,请使用下面的命令: $ find . \( -name a.out -o -name '*.o' -o -name 'core' \) -exec rm {} \; 括号中的文件掩码 标识出了需要删除的文件类型,每个文件掩码的前面都有 -name。该列表可以扩展为包括您需要清除的系统中的任何临时文件类型。在代码的编译和连接过程中,程序员及其工具会生成示例中的那些文件类型:a.out、*.o 和 core。其他的用户通常也会生成类似的临时文件,可以使用如 *.tmp、*.junk 等文件掩码来对命令进行相应的编辑。find 命令允许您复制目录中的全部内容,同时保持每个文件和子目录的权限、时间和所有权。要完成该操作,需要组合使用 find 和 cpio命令。
9在文件中查找正文
grep 命令用来在文本文件中查找指定模式的词或短语,并在标准输出上显示包括给定字符串的所 有行。grep 命令语法为:
grep [选项] 查找模式 文件名 [文件名…]
默认情况下,grep 在查找模式时区分大、小写;如果不想加以区别,用选项 -i。 例如,以下命令将在 /etc/ssh/ 目录及其子目录下的所有文件中查找字符串“ForwardAgent”出现的次数,结果如图5 。
# grep ‘ForwardAgent’ /etc/ssh/*
图5在文件中查找正文
查找模式可能是唯一的参数,如果在模式中使用了 shell 元字符,通常要使用单引号(’)将其括起来。
10 使用GUI方法
Solaris 10的桌面JDS和CDE也包含GUI图像界面的查找文件的方法,使用方法非常简单,这里笔者就不赘述了。图7 和图6是查找的界面。
图6 在JDS中查找文件
图7 在CDE中查找文件
总结:到这里为止我们已经学习了这名多关于find和grep命令的使用方法,如果我们能熟练掌握在Solaris中find命令的使用方法,那么在Solaris中查找文件也不是一件困难的事情。 另外本文的思路也可以在Linux和其他版本的unix中使用。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者