电脑技术学习

使用 UNIX find 命令的高级技术

dn001

$ find $HOME/. -name *.txt -ok rm {} ;

  它列出了查找到的每个文件,并且系统将暂停以等待您输入 Y 或者 y。如果您按下 Enter 键,系统将不会删除该文件。清单 1 显示了一些示例结果:

  清单 1. 示例结果

< rm ... /home/bill/./.kde/share/apps/karm/karmdata.txt > ?
< rm ... /home/bill/./archives/LDDS.txt > ?
< rm ... /home/bill/./www/txt/textfile1.txt > ?
< rm ... /home/bill/./www/txt/faq.txt > ?
< rm ... /home/bill/./www/programs/MIKE.txt > ?
< rm ... /home/bill/./www/programs/EESTRING.txt > ?
.
.
.

  系统将在每个问号之后暂停,在本示例中,每次都按下了 Enter 键以继续处理下一个文件。(没有删除任何文件。)-ok 参数允许您控制每个查找到的文件的自动化处理过程,这样就添加了一种避免自动删除文件的安全措施。

  如果在使用 -ok 参数时涉及到过多的文件,那么一个好的方法是先运行带 -exec 的 find 命令以列出所有将要删除的文件,然后在经过检查确保其中不会删除重要的文件后,再次运行该命令,其中用 rm 代替 ls。

  -exec 和 -ok 都非常有用,您必须确定在当前情况下哪一个能够更好的工作。请记住,安全第一!

  创造性地使用 find

  您可以使用 find 命令执行各种各样的任务。本部分内容提供了使用 find 命令来管理文件系统的几种方式的示例。

  为了保持简单,这些示例都避免了使用涉及通过管道将一个命令的输出传递到另一个命令的 -exec 命令。然而,您完全可以根据自己需要在 find 命令的 -exec 子句中使用这样的命令。

标签: