2

我有大量xxx.cmd文件位于多个文件夹中(例如,、、child1child2child3,它们有一个父文件夹parent

是否有我可以在parent删除所有.cmd子文件夹中的所有文件的文件夹上执行的 cleartool 命令?

4

2 回答 2

2

不容易,因为在执行cleartool rmname.

最简单的方法是:

  • 复制视图外的所有元素。
  • 删除所有 *.cmd 文件(使用您想要的任何查找实用程序,与 clearcase 无关)
  • clearfsimport使用选项-rmname ("mirror clearfsimport")将这些文件返回到您的视图中(减去已删除的 *.cmd 文件):

    • 现有文件都不会受到影响
    • *.cmd 文件存在于目标(您的 ClearCase 视图)中,但不再存在于源中(您清理和删除这些文件的备份),将被删除(rmnamed),并使用父级的挑剔签出签入为您完成的目录。

    --rmname

对于所有作为目录的源名称参数,对已经在 VOB 中但不存在于源目录中的rmname元素执行操作。 如果与 结合使用,则在遍历的所有目录中执行此操作。 如果与 结合使用,则在查找 VOB 中的匹配名称之前执行该操作。
-recursermname
-downcasedowncase

于 2013-01-15T20:27:03.097 回答
2

clearfsimport我今天也有同样的需求,因为需要制作本地副本,所以对使用的提议不太满意。这是我在 bash 环境中所做的(我在 windows 下的 msys):

  1. 列出所有要删除的文件find
    find parent -name "*.cmd" | tee to_remove_list.txt
  2. 提取文件夹列表:
    sort to_remove_list.txt | xargs -i dirname {} | uniq | tee to_checkout.txt
  3. 签出所有这些文件夹:
    cat to_checkout.txt | xargs -i cleartool co -nc {}
  4. 删除文件:
    cat to_remove_list.txt | xargs -i cleartool rm {}
  5. 签入所有文件夹:
    cat to_checkout.txt | xargs -i cleartool ci -nc {}
  6. (可选)清理文件夹和文件列表:
    rm to_remove_list.txt to_checkout.txt
于 2019-02-13T13:55:05.670 回答