
En mi proyecto tengo muchos archivos de prueba, que se denominan *.ts
.
Todos están en __tests__
carpetas, pero puede ser __tests__/test1.ts
, __tests__/dir2/test2.ts
y así sucesivamente.
Me gustaría cambiar el nombre de esos archivos a *.test.ts
.
¿Cómo podría hacerlo?
Ejemplos:
project/src/__tests__/app.ts
->project/src/__tests__/app.test.ts
project/src/dashboard/__test__/start/login.ts
->project/src/dashboard/__test__/start/login.test.ts
Logré encontrar esos archivos con:
find . -type f -path '*__tests__*.ts'
pero no tengo idea de cómo cambiarles el nombre.
Respuesta1
Necesita la -exec
opción de invocar un shell para realizar el cambio de nombre.
find . -type f -path '*__tests__*.ts' -exec sh -c '
for f; do
mv -- "$f" "${f%ts}test.ts"
done
' findsh {} +
-exec sh -c
Invoca un shell y ejecuta:for f; do mv -- "$f" "${f%ts}test.ts"; done
Recorre los archivos encontrados y les cambia el nombre a un objetivo quets
se elimina ytest.ts
se coloca en su lugar.
- En
findsh {} +
,findsh
es solo un marcador de posición y{} +
es la construcción que proporciona los archivos al-exec
comando (el shell).