如何在ClearCase find命令中按名称排除文件?

时间:2008-10-20 14:30:04

标签: version-control clearcase

使用ClearCase find命令,如何查找目录中没有名称pom.xml的所有文件?

我想将其他选择选项传递给ClearCase find命令,所以我不想执行另一个命令。

我正在使用RedHat linux版本的ClearCase。我试过“cleartool find!-name pom.xml -print”,但这不起作用。

PS:我不选择使用ClearCase,它是我的项目的强制要求。这是我讨厌它的原因之一。我已经多次阅读过这些手册页,并且没有明确的方法可以做到这一点!

3 个答案:

答案 0 :(得分:3)

ClearCase通配符没有反转(AFAIR),但你可以使用grep -

cleartool ls -short -nxname | grep -v pom.xml

答案 1 :(得分:3)

还有另一种可能适合您的解决方案。尝试

ccapply task

答案 2 :(得分:2)

您似乎忘记了cleartool find命令的 -exec 选项。

它实际上允许您执行除cleartool之外的其他命令,包括系统命令(如sh或DOS脚本)。

我知道你“不想执行另一个命令”,但是如果其他系统脚本是find命令的exec选项的一部分......可以说它仍然是一个命令;)

所以创建一个简单的脚本,如:

(Unix'print.sh')

#!/bin/sh
if [ $1 != $2 ] ; then
  echo $1
fi

(windows'print.bat')

@echo off
if not "%1"=="%2" echo "%1" 

将该脚本放在搜索目录中,或将脚本路径添加到%PATH%或$ PATH环境中。

最后,使用find命令(所有other options关于日期过滤,分支过滤等)

(UNIX)

cleartool find . -nrec -type f -exec './print.sh $CLEARCASE_PN ./pom.xml'

(窗口)

cleartool find . -nrec -type f -exec "print.bat %CLEARCASE_PN% .\pom.xml"

在这里你说:“目录中没有名称为pom.xml的所有文件”。

注意:find命令的'-type f'选项允许您仅将搜索限制为文件名(而不是目录名)。