电脑技术学习

使用 UNIX find 命令的高级技术

dn001

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

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

  从当前文件夹开始往下搜索,紧跟在 find 之后,使用点号 (.)。

  定位所有名称以 .gif 结尾的文件(图形文件)。

  列出所有查找到的文件,使用 ls 命令。

  需要对 -exec 参数进行更深入地研究。当查找到匹配搜索条件的文件名时,find 命令执行 ls {} 字符串,用文件名和路径代替文本 {}。假设在搜索中查找到 saturn.gif 文件,find 将执行如下所示的命令:

$ ls ./gif_files/space/solar_system/saturn.gif

  本文余下的内容建立在这条一般原则之上:仔细地使用 find 命令可以让 Unix 文件系统的管理工作变得更加容易。例如,如果您使用了 -fstype 参数,find 命令可以根据查找到的文件所处的文件系统的类型来对命令进行相应的处理。在 find 命令对查找到的文件执行相应命令前将对您进行提示,这通常是非常有用的,您可以使用 -ok 参数告诉它继续执行该操作,接下来我们将对其进行介绍。

  可选的执行

  -ok 是 -exec 参数的一个重要的替代项,它的行为和 -exec 一样,但它会提示您是否要对文件运行相应的命令。假设您想要删除 home 目录中的大部分 .txt 文件,但希望能够逐个文件地执行该操作。像 UNIX 中的 rm 命令那样的删除操作是很危险的,因为当使用像 find 这样的自动化处理方式来查找文件时,它可能一不小心会删除重要的文件,您也许希望在删除这些系统查找到的文件之前对其进行仔细检查。

  下面的命令列出了您的 home 目录中所有的 .txt 文件。要删除这些文件,必须在 find 命令通过列出文件名提示您确认操作时输入 Y 或者 y:

标签: