tente rename -v 's/\.jpg_backup$/\.jpg/' *.jpg_backup
o -v fornece a saída detalhada.
veja aqui Como renomear
Eu tenho um monte de imagens que foram de alguma forma renomeadas de myimage.jpg
to myimage.jpg_backup
, então as imagens no meu site não carregam mais. Como recursivamente eu encontraria todas as imagens terminando com _backup
e removendo apenas a parte _backup
enquanto preservava o resto do nome do arquivo?
Eu tentei algo assim:
sudo find . -name "*.jpg_backup" -exec rename -n 's/_backup$//' *.jpg_backup ';'
mas isso me dá um erro:
Can't rename *.jpg_backup *.jpg: No such file or directory
tente rename -v 's/\.jpg_backup$/\.jpg/' *.jpg_backup
o -v fornece a saída detalhada.
veja aqui Como renomear
Em um terminal , acesse o diretório onde estão esses arquivos (com cd /path/to/folder
). Se os arquivos não contiverem espaços em branco ou caracteres especiais \[*?
, execute o seguinte comando:
for file in 'find . -name *.jpg_backup' ; do mv "$file" "${file%_backup}"; done
Se você acha que tem nomes de arquivos contendo espaços em branco ou caracteres globbing, use:
find . -type f -name '*.jpg_backup' -print0 \
| while IFS= read -r -d '' file ; do mv -- "$file" "${file%_backup}"; done
ou:
shopt -s globstar;
for file in /path/to/folder/**/*.jpg_backup ; do mv -- "$file" "${file%_backup}"; done
Os comandos acima recursivamente encontrarão todos os arquivos *.jpg_backup
da pasta atual e subpastas e irão renomeá-los para *.jpg
. O último também analisa links simbólicos para diretórios.
Tags command-line bash rename