Este pode ser um caminho:
for file in *.mp4\?token*; do mv --no-clobber "$file" "${file%%\?*}"; done
Eu tenho alguns arquivos com nomes como estes:
63018933.mp4? token = 1325697436_b0c3e70c6e339380b4a484c576a8c287
63808488.mp4? token = 1325697401_4ae5f7a68d93873c8881b303e7655e14
Como renomeio todos eles para, por exemplo, 63018933.mp4 (remover caracteres após mp4)?
Se você tiver a ferramenta rename(1)
(o que você faz se você tiver um Debian ou um Linux baseado em Debian, incluindo Ubuntu e derivativos):
rename -n 's/\.mp4.*$/.mp4/' *mp4*
Quando estiver convencido de que você tem o padrão correto, basta remover o -n
(dry-run) e deixá-lo rodar corretamente.
rename(1)
aplicará uma expressão regular Perl aos nomes de arquivo que lhe foram atribuídos.
Observe que na maioria das outras distribuições do Linux, rename
é um programa de renomeação de arquivos diferente, o que não ajuda nesse padrão de renomeação específico.
Há também mmv:
mmv -n "*.mp4*" "#1.mp4"
Remova o "-n" quando a saída parece correta.