O problema não é o ponto-e-vírgula, seu segundo exemplo cuidará disso. O problema é que os utilitários Linux / Unix (e, por extensão, o Cygwin) não usam essa instrução para significar "mover todos os arquivos terminados em .XLS;1
para .XLS
", como eu entendo que o Windows faz. Você precisa mover cada arquivo individualmente:
for file in *.XLS\;1; do
mv "$file" "${file%;1}"
done
Uma explicação:
Isso leva todos os arquivos terminados em .XLS;1
e os armazena um por vez em uma variável chamada $file
. Para cada arquivo, nós dizemos para mover esse $file
para um novo nome que criamos cortando ;1
da parte de trás de $file
.
Para aqueles que usam zsh, existe um bom utilitário chamado zmv
:
zmv '(*).XLS;1" "$1.XLS"
Dependendo da sua configuração, você pode precisar executar autoload zmv
primeiro (coloque-o em seu .zshrc também).