使用ClearCase find命令,如何查找目录中没有名称pom.xml的所有文件?
我想将其他选择选项传递给ClearCase find命令,所以我不想执行另一个命令。
我正在使用RedHat linux版本的ClearCase。我试过“cleartool find!-name pom.xml -print”,但这不起作用。
PS:我不选择使用ClearCase,它是我的项目的强制要求。这是我讨厌它的原因之一。我已经多次阅读过这些手册页,并且没有明确的方法可以做到这一点!
答案 0 :(得分:3)
ClearCase通配符没有反转(AFAIR),但你可以使用grep -
cleartool ls -short -nxname | grep -v pom.xml
答案 1 :(得分:3)
还有另一种可能适合您的解决方案。尝试
答案 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'选项允许您仅将搜索限制为文件名(而不是目录名)。