No bash:
shopt -s globstar;
for file in ./**/Attic/*; do
if [[ -e ${file%/*/*}/${file##*/} ]]; then
rm -vf "$file";
fi;
done;
Com globstar ativado, **
corresponde aos arquivos recursivamente (independentemente da profundidade). ${var#text}
e ${var%text}
permitem remover o prefixo ou sufixo de uma variável, portanto ${file%/*/*}
resulta no nome do diretório (menos "/ Attic /…"), enquanto ${file##*/}
é o nome do arquivo base.
Você também deve considerar ferramentas como cvs-fast-export
e reposurgeon
; Eu esperaria que eles lidassem corretamente com tais situações desde o começo. Se não, então, pelo menos, certifique-se de ter a versão mais recente de cvs2git
...