我有大量的xxx.cmd
文件,坐在多个文件夹(例如child1
,child2
,child3
等),他们有一个父文件夹parent
是否有一个cleartool命令,我可以在parent
folder上执行删除所有子文件夹中的所有.cmd
文件?
不容易,因为在执行cleartool rmname
之前,您需要签出任何包含这些文件的父目录。
最简单的方法是:
clearfsimport
将这些文件备份到您的视图中(减去删除的* .cmd文件),使用选项-rmname(“mirror clearfsimport”):
没有任何现有文件会受到影响
目标中存在的* .cmd文件(您的ClearCase视图),但不再存在于源(您清理和删除这些文件的备份)中,将被删除(rmnamed),并且父母的检查结果非常严格为你完成的目录。
-rmname对于作为目录的所有源名称参数,对已存在于VOB中但不存在于源目录中的元素执行
rmname
操作。 如果与-recurse
结合使用,则在遍历的所有目录中执行此rmname
操作。 如果与-downcase
结合使用,请在查找VOB中的匹配名称之前执行downcase
操作。
我今天有同样的需求,并且对使用clearfsimport
的建议不太满意,因为需要制作本地副本。这就是我在bash环境中所做的(对于我来说,在windows下为msys):
find
列出要删除的所有文件:
find parent -name "*.cmd" | tee to_remove_list.txt
sort to_remove_list.txt | xargs -i dirname {} | uniq | tee to_checkout.txt
cat to_checkout.txt | xargs -i cleartool co -nc {}
cat to_remove_list.txt | xargs -i cleartool rm {}
cat to_checkout.txt | xargs -i cleartool ci -nc {}
rm to_remove_list.txt to_checkout.txt