Usando rename
Uma ferramenta geralmente útil para este tipo de atividade é rename do pacote perl . Aplica uma substituição por perl ao nome do arquivo:
rename 's/file/file0/' file[0-9][0-9].ext
Como isso funciona:
-
s/file/file0/Este é um comando
perlde substituição. Ele substitui a ocorrência defileem um nome de arquivo porfile0. -
file[0-9][0-9].extEsta é a lista de arquivos em que
renamedeve operar.[0-9]significa qualquer número de 0 a 9.[0-9][0-9]significa quaisquer dois números, um após o outro.
A página manpage de rename é aqui .
Observação: isso requer a versão perl de rename . Há também um rename utility que faz parte de util-linux , mas funciona diferentemente.
Usando bash
Essa abordagem usa um loop for combinado com a substituição do padrão :
for f in file[0-9][0-9].ext; do mv "$f" "${f/file/file0}"; done
Como funciona:
-
for f in file[0-9][0-9].ext; doIsso inicia um loop sobre cada nome de arquivo que corresponde ao glob
file[0-9][0-9].ext. -
mv "$f" "${f/file/file0}"Isso renomeia os arquivos usando a substituição de padrões do bash . Ele substitui
filepor file0 'no nome do arquivo. -
doneIsso marca o final do loop
for.
Essa abordagem requer bash (ou outro shell avançado).
bash é o shell interativo padrão e essa abordagem funcionará em bash . Assim, isso deve funcionar na linha de comando usual.