Clearcase Multi-file rename
Pregunta
Tengo una gran cantidad de archivos en una estructura de directorio ClearCase, y necesito revisar y cambiar todos los archivos "makefile". a '' Makefile ''. Estoy pensando en alguna combinación de find. -name makefile
con un indicador de exec, pero me resulta difícil encontrar el comando exec. El comando cleartool mv no comprueba automáticamente el directorio, por lo que necesito verificarlo y luego hacer el mv. Pero por lo que puedo decir, lo único con lo que tengo que trabajar es el símbolo% CLEARCASE_PN%, que me da el nombre completo de la ruta. Entonces necesito analizar el directorio a partir de eso. Espero que alguien que sea mejor con el shell que yo pueda encontrar el comando correcto más rápido de lo que puedo descifrarlo.
Tengo Cleartool, Windows cmd y Cygwin para trabajar aquí.
Solución
Supongo que tienes bash en tu entorno cygwin. Si lo hace, puede escribir un pequeño script bash usando este responda a una pregunta anterior en algo como:
#!/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;
Luego llame al script con:
find . -name orig_name -exec myscript.sh {} \;
Advertencias:
- un directorio ya desprotegido activará un mensaje de error cuando se desprotege nuevamente (puede ignorarse)
- tendrá que registrar todos los directorios extraídos durante este proceso, de lo contrario, nadie verá el resultado del movimiento (excepto los que acceden a esta vista actual)