在Clearcase中: 我正在尝试在没有特定标签的情况下查找当前视图中所有文件的名称。到目前为止,我已经提出以下建议:
cleartool find -cview -all -version '\!lbtype(LABEL_1)' -print
但最终会显示文件名,并在末尾添加“@@ / main / BRANCH1 / SUBBRANCH”,我真的只想要文件名。
我尝试添加-short,但是find命令不喜欢该选项,我在手册中找不到改变行为的选项。
答案 0 :(得分:0)
如果需要,您可以将find与exec指令结合使用(测试两者):
cleartool find -cview -all -element '\!lbtype_sub(LABEL_1)' -print
cleartool find -cview -all -element '\!lbtype_sub(LABEL_1)' -exec 'cleartool descr -fmt "%En\n" "$CLEARCASE_PN"'
注意:
-element '\!lbtype_sub(LABEL_1)'
查找所有元素(文件),但没有带有特定标签的版本(因此与_sub
查询关联的lbtype
)describe
命令的 fmt_ccase 指令。"$CLEARCASE_PN"
介于双引号之间,因为它的路径名/文件名中可能有空格。正如OP's own answer(Luciano)中所述,如果您不需要查看所有元素(包括已删除的元素),但只能看到当前可见的元素查看, -nxname
就足够了:
cleartool find -cview -nxn -element '\!lbtype_sub(LABEL_1)' -print
我仍然使用-element
代替-version
,因为它更快,避免无用的重复。
答案 1 :(得分:0)
找到它:
-nxname
从每个所选对象的名称中删除扩展命名符号(默认为@@)以及任何后续版本ID或分支路径名。禁止此转换产生的重复名称。实际上,此选项将扩展名称转换为标准操作系统名称;它还将分支或版本的名称转换为元素名称。
所以
cleartool find . -cview -nxn -version '\!lbtype_sub(LABEL_1)' -print
打印当前视图中的所有文件&没有标签LABEL_1
的目录(和子目录)