2

我在 ClearCase 目录结构中有大量文件,我需要将所有“makefile”更改为“Makefile”。我正在考虑该find . -name makefile命令与 exec 标志的某种组合,但我很难提出 exec 命令。cleartool mv 命令不会自动签出目录,所以我需要先签出然后再执行 mv。但据我所知,我唯一需要使用的是 %CLEARCASE_PN% 符号,它为我提供了完整的路径名。所以我需要从中解析出目录。我希望比我更擅长 shell 的人能比我想办法更快地提出正确的命令。

我在这里可以使用 cleartool、Windows cmd 和 Cygwin。

4

1 回答 1

3

我猜你的 cygwin 环境中有 bash 。如果你这样做了,你可以使用这个对上一个问题的答案编写一个小的 bash 脚本,如下所示:

#!/bin/bash
FILE=$1
DIR_NAME=$( dirname $FILE )
FILE_NAME=$( basename $FILE )

#checkout directory $DIR_NAME with whatever the cleartool command is
#rename with cleartool $DIR_NAME/$FILE to $DIR_NAME/new_name

/usr/atria/bin/cleartool checkout -nc $DIR_NAME; 
/usr/atria/bin/cleartool mv $DIR_NAME/$FILE_NAME $DIR_NAME/Makefile;

然后调用脚本:

find . -name orig_name -exec myscript.sh {} \;

警告:

  • 已经签出的目录在再次签出时会触发错误消息(可以忽略)
  • 您必须在此过程中签入所有签出的目录,否则没有人会看到移动的结果(访问当前视图的除外)
于 2008-12-04T14:20:43.043 回答