Git mueve y confirma todos los directorys que coinciden con una cadena con Bash

Tengo alnetworkingedor de 150 directorys que quiero cambiar el nombre (y confirmar) en un repository git. Los paths son algo similar a;

/src/app/testing/linux/testindexscreen_home/image.png /src/app/testing/osx/testindexscreen_home/image.png /src/app/testing/win/testindexscreen_home/image.png 

Así que me gustaría ejecutar mv y luego commit en todas las routes que coinciden con indexscreen_ para eliminar esa parte de la cadena.

Estoy en un cuadro de Windows, usando git bash y en este momento tengo el command find & mv tratando de mover la carpeta a sí mismo. No estoy seguro de cómo eliminar la cadena coincidente;

find . -name '*indexscreen_*' -exec sh -c 'file={}; git mv $file ${file/"*indexscreen_*"/}' \;

Que con el compromiso incluido, creo que debe ser;

find . -name '*indexscreen_*' -exec sh -c 'file={}; git mv $file ${file/"*indexscreen_*"/}; git commit -m "Renamed $file"' \;

Así que me gustaría que ese command bash convierta esos paths en;

 /src/app/testing/linux/testhome/image.png /src/app/testing/osx/testhome/image.png /src/app/testing/win/testhome/image.png 

Y enviar posts de confirmación como "Renaissance testhome"

Así que mi comprensión de bash no ha mejorado mucho aquí (necesito encontrar algunos buenos documentos), pero he descubierto el problema con lo que estaba ejecutando.

Al cambiar mi command mv a lo siguiente, cambié el nombre de los directorys como quería;

find . -name '*indexscreen_*' -exec sh -c 'file={}; git mv $file ${file/indexscreen_/}' \;

Creo que esto hace lo que quieres:

 find . -name "*indexscreen_*" -a -type d -exec sh -c 'n={}; git mv {} ${n/indexscreen_/}' \; 

pero mi hallazgo se queja cuando desaparezco los files mientras Find se está ejecutando.

La misma solución que usa xargs no se queja:

 find . -name "*indexscreen_*" -a -type d |xargs -i sh -c 'n={}; git mv {} ${n/indexscreen_/}'