Você pode usar o recurso de expansão de parâmetros do shell: em particular
${parameter#word}
${parameter##word}
Remove matching prefix pattern. The word is expanded to produce
a pattern just as in pathname expansion. If the pattern matches
the beginning of the value of parameter, then the result of the
expansion is the expanded value of parameter with the shortest
matching pattern (the ''#'' case) or the longest matching pat‐
tern (the ''##'' case) deleted.
Então, algo como
for file in *; do echo mv -- "$file" "${file##*=}"; done
(remova o echo
se parecer que faz a coisa certa).
Um problema que você pode enfrentar é que os nomes de arquivos podem se tornar não exclusivos depois que os prefixos forem removidos. Você pode optar por ignorar a renomeação desses casos usando a opção -n
ou --no-clobber
para mv
:
for file in *; do mv --no-clobber -- "$file" "${file##*=}"; done
ou use a opção -b
ou --backup
para criar backups distintos: mais diretamente
for file in *; do mv --backup=numbered -- "$file" "${file##*=}"; done
que adicionará sufixos de distinção .~1~
, .~2~
e assim por diante.