日期:2014-05-16  浏览次数:20690 次

UNIX find 命令的高级技术 (转)

没有什么能比得上探索和发现新的人、地方、事物所带来的刺激。领域可能有所不同,但有些原则却是一样的。在这些原则中,有一条是记录下您的旅程,另一条则是了解和使用工具。

UNIX? 操作系统很像一片广阔的、未经标识的荒野。当您在这样的领域中旅行时,可以选择一些日后能够给您带来帮助的工具。find命令便是这样一种工具。find?命令不仅能够简单地用来定位文件,正如本文将介绍的那样,它还可以自动地执行其他 UNIX 命令的序列,其中使用所查找到的文件名作为输入。

Find 的有关限制

所有称职的操作系统都具有协助您查找相关内容的工具。与大多数工具不同的是,UNIX 中的?find?命令可以自动地对其查找到的文件执行许多操作。

图形用户界面 (GUI) 中的标准?find?工具允许您对所查找到的文件进行一些常规操作任务:您可以将它们标记为剪切、复制和粘贴,您可以将它们移动到一个新的位置,并且可以使用创建它们的应用程序来打开它们。这些操作涉及到两个或更多的步骤,并且不是自动完成的,即首先查找到文件,然后使用 GUI 为下一步的操作对它们进行标记。这种方法对许多用户来说没有问题,但是 Explorer 需要的不仅是这些。

UNIX 的?find?命令可以删除、复制、移动和执行其查找到的文件。另外,使用?-exec?参数可以根据您所需要的 UNIX 命令的序列来自动地运行这些文件。它甚至可以在对任何文件执行这些操作前,进一步让您进行确认。

简化文件系统的管理

与大多数 UNIX 命令一样,UNIX?find?命令具有一长串令人生畏的选项和开关,它们会阻碍人们深入地学习该命令,但正是因为其范围广阔,真正的 Explorer 并不会被它们吓倒。一条好的通用原则在简化一个复杂问题时都会经过漫长的过程。启动一个 xterm,并尝试执行下面的命令:

$ find . -name *.gif -exec ls {} \;

-exec?参数中包含了真正有价值的操作。当查找到匹配搜索条件的文件时,-exec?参数定义了将对这些文件进行什么操作。该示例告诉计算机进行如下操作:

  1. 从当前文件夹开始往下搜索,紧跟在?find?之后,使用点号 (.)。
  2. 定位所有名称以 .gif 结尾的文件(图形文件)。
  3. 列出所有查找到的文件,使用?ls?命令。

?

需要对?-exec?参数进行更深入地研究。当查找到匹配搜索条件的文件名时,find?命令执行?