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í.

¿Fue útil?

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)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top