【发布时间】:2019-02-13 21:55:05
【问题描述】:
我有大量的xxx.cmd 文件位于多个文件夹中(例如child1、child2、child3 等),它们有一个父文件夹parent
是否有我可以在 parent文件夹上执行的 cleartool 命令删除所有子文件夹中的所有 .cmd 文件?
【问题讨论】:
我有大量的xxx.cmd 文件位于多个文件夹中(例如child1、child2、child3 等),它们有一个父文件夹parent
是否有我可以在 parent文件夹上执行的 cleartool 命令删除所有子文件夹中的所有 .cmd 文件?
【问题讨论】:
不容易,因为在执行cleartool rmname 之前,您需要检出任何父目录,包括这些文件。
最简单的方法是:
clearfsimport 将这些文件返回到您的视图中(减去已删除的 *.cmd 文件),使用选项 -rmname(“mirror clearfsimport”):
--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
【讨论】: