Para conseguir isso manualmente, de forma simples, você pode usar o comando mv
com algumas citações strongs para garantir que o shell não interprete os dois-pontos como um caractere especial:
mv 'Lang-32b-Branch:Line' 'Lang-32b-BranchLine' && cd 'Lang-32b-BranchLine'
Uma abordagem alternativa é usar uma variável e um dos recursos da expansão do parâmetro Bash, o que pode ser mais útil se você quiser automatizar a alteração desse nome de diretório em um script:
dir=Lang-32b-Branch:Line
mv "$dir" "${dir//:/}"
A expansão de "${dir//:/}"
substituirá qualquer ocorrência do caractere de dois-pontos por nada, fornecendo o resultado esperado de Lang-32b-BranchLine. Usar "${dir/:/}"
resultaria apenas na primeira ocorrência do cólon sendo removido, embora isso ainda funcione para o exemplo dado.
Como one-liner para mover e cd no diretório:
dir=Lang-32b-Branch:Line ; mv "$dir" "${dir//:/}" && cd "${dir//:/}"
Ou se você deseja capturar o nome do diretório modificado em uma variável chamada new_dir:
dir=Lang-32b-Branch:Line ; new_dir="${dir//:/}"; mv "$dir" "$new_dir" && cd "$new_dir"
Um ótimo guia para a expansão de parâmetros do Bash está disponível aqui .