Janeiro 1, 2022

como renomear vários arquivos Ao Mesmo Tempo no Linux

renomear vários arquivos no Linux parece uma tarefa simples, mas pode ficar bastante complexo. É possível renomear arquivos em massa com o comando mv e um pouco de script Bash, ou usar os utilitários mmv e rename – que normalmente não são instalados por padrão. Neste guia, mostraremos vários exemplos para renomear vários arquivos de uma só vez a partir da linha de comando do Linux.

os exemplos neste guia são usados para renomear todos os arquivos em seu diretório de trabalho atual. A maioria desses comandos pode ser facilmente ajustada para funcionar recursivamente. Observe que alguns exemplos também renomearão diretórios.

renomeie vários arquivos com mv

o comando mv é uma parte padrão do Linux e pode ser usado para renomear vários arquivos, mas um pouco de script é necessário para fazer o trabalho. Alguns exemplos também dependem de outros utilitários Linux padrão, como ls, find, xargs, etc.

exemplo 1. Altere todos os nomes de arquivos para minúsculas.

$ for f in `ls | grep `; do mv "$f" "`echo $f | tr 'A-Z' 'a-z'`"; done

Exemplo 2. Altere todos os nomes de arquivo para maiúsculas.

$ for f in `ls | grep `; do mv "$f" "`echo $f | tr 'a-z' 'A-Z'`"; done

exemplo 3. Altere todas as extensões de arquivo de .jpeg para .jpg.

$ for f in *.jpeg; do mv "$f" "${f%.jpeg}.jpg"; done

exemplo 4. Remova a extensão de arquivo .bak de todos os arquivos.

$ for f in `ls *.bak`; do mv $f ${f%.*}; done

exemplo 5. Adicione uma extensão de arquivo .bak a todos os arquivos.

$ for f in `ls`; do mv $f $f.bak; done

exemplo 6. Use xargs para anexar “_backup” a cada arquivo.

$ ls * | xargs -I{} mv {} {}_backup

exemplo 7. Use os comandos find, sed e mv para alterar todos os arquivos para minúsculas.

$ find . -maxdepth 1 -type f -name '**'|sed -n 's/\(.*\/\)\(.*\)/mv -n -v -T  \L/p'|sh

exemplo 8. Use os comandos find -exec e mv para anexar “_backup” a cada arquivo que termina na extensão .log.

$ find . -type f -name "*.log" -exec mv {} {}_backup \;

exemplo 9. Semelhante ao exemplo anterior, mas substitua a opção -exec do find por xargs para anexar “_backup” a cada arquivo que termina na extensão .log.

$ find . -type f -name '*log' -print0 | xargs --null -I{} mv {} {}_backup

exemplo 10. Substitua um padrão em cada arquivo usando mv e sed. Isso substituirá “IMG” por “férias” em cada arquivo .jpg.

$ for f in *.jpg; do mv "$f" "`echo "$f" | sed s/IMG/Vacation/`"; done

exemplo 11. Adicione o carimbo de data / hora atual a todos os arquivos que terminam em .log. Isso mudaria um arquivo como access.log para access_20210418040151.log.

$ for f in *.log; do mv "$f" "${f%.log}"_`date +%Y%m%d%H%M%S`.log; done

renomeie vários arquivos com renomear

o utilitário renomear torna nossas tarefas de renomeação em massa um pouco mais fáceis, mas o utilitário nem sempre é instalado por padrão. Use o comando apropriado abaixo para instalá-lo com o Gerenciador de pacotes do seu sistema.

Ubuntu, Debian e no Linux Mint:

$ sudo apt install rename

Fedora, AlmaLinux, CentOS, e RHEL:

$ sudo dnf install prename

Arch Linux e Manjaro:

$ sudo pacman -S perl-rename
Use o -n opção rename comandos de se pretender pré-visualizar as alterações antes de fazê-los.

exemplo 1. Altere todos os nomes de arquivos para minúsculas.

$ rename 'y/A-Z/a-z/' *

Exemplo 2. Altere todos os nomes de arquivo para maiúsculas.

$ rename 'y/a-z/A-Z/' *

exemplo 3. Retire a extensão .bak de todos os arquivos.

$ rename 's/\.bak$//' *.bak

exemplo 4. Altere a extensão de todos os arquivos .jpeg para .jpg.

$ rename 's/\.jpeg/\.jpg/' *.jpeg

exemplo 5. Altere a extensão em maiúsculas .JPG para minúsculas .jpg para todos os arquivos.

$ rename 's/\.JPG/\.jpg/' *.JPG

exemplo 6. Remova espaços em branco de todos os nomes de arquivos.

$ rename "s/ *//g" *

exemplo 7. Substitua espaços em branco por sublinhados para todos os nomes de arquivos.

$ rename 's/\s+/_/g' *

exemplo 8. Capitalize a primeira letra de todos os nomes de arquivos.

$ rename 's/\b(\w)/\U/g' *

exemplo 9. Substitua um padrão em cada nome de arquivo. Este comando substituirá “IMG” por “férias” em cada arquivo .jpg.

$ rename 's/IMG/Vacation/' *.jpg

exemplo 10. Exclua parte do nome de um arquivo. Este comando removerá “IMG_” de cada arquivo .jpg.

$ rename 's/IMG_//' *.jpg

exemplo 11. Anexe a extensão .bak a todos os arquivos.

$ rename 's/(.*)/.bak/' *

renomeie vários arquivos com mmv

o utilitário mmv se destaca em Renomear arquivos com base em padrões, como remover ou adicionar strings a todos os arquivos ou reorganizar partes de nomes de arquivos. Geralmente não é instalado por padrão, mas você pode usar o comando apropriado abaixo para instalar o mmv com o Gerenciador de pacotes do seu sistema.

Ubuntu, Debian e no Linux Mint:

$ sudo apt install mmv

Fedora, AlmaLinux, CentOS, e RHEL:

$ sudo dnf install mmv

Arch Linux e Manjaro (instalar a partir do AUR):

$ git clone https://aur.archlinux.org/mmv.git$ cd mmv/$ makepkg -si
Use o -n opção mmv comandos de se pretender pré-visualizar as alterações antes de fazê-los.

exemplo 1. Altere a extensão de todos os arquivos .jpeg para .jpg.

$ mmv '*.jpeg' '#1.jpg'

Exemplo 2. Altere todos os nomes de arquivos para minúsculas.

$ mmv '*' '#l1'

exemplo 3. Altere todos os nomes de arquivo para maiúsculas.

$ mmv '*' '#u1'

exemplo 4. Reorganize partes de um nome de arquivo. Este comando mudará arquivos de música com padrão Song-Artist.mp3 para Artist-Song.mp3.

$ mmv '*-*.mp3' '#2-#1.mp3'

exemplo 5. Substitua a primeira ocorrência de “IMG” por “férias” em todos os nomes de arquivos.

$ mmv '*IMG*' '#1Vacation#2'

exemplo 6. Adicione um prefixo a cada nome de arquivo. Este comando adicionará “backup_” a cada arquivo .log.

$ mmv '*.log' 'backup_#1.log'

exemplo 7. Adicione um sufixo a cada nome de arquivo. Este comando anexará “_backup” a cada arquivo .log.

$ mmv '*.log' '#1.log_backup'

exemplo 8. Remova o prefixo” IMG_ ” de todos os arquivos .jpg.

$ mmv 'IMG_*.jpg' '#1'

exemplo 9. Remova o sufixo” _old ” de todos os arquivos.

$ mmv '*_old' '#1'

renomear arquivos em massa via GUI

se a linha de comando não é realmente sua coisa, é possível renomear vários arquivos de uma só vez via GUI. Uma das melhores ferramentas para fazer o trabalho é o aplicativo de renomeação em massa que vem com o Thunar.

Thunar é o navegador de arquivos padrão para Xfce, mas você pode instalá-lo independentemente do ambiente de trabalho que você está usando. Se você já estiver usando Xfce ou Thunar, a renomeação em massa já faz parte do seu sistema. Caso contrário, use o comando apropriado abaixo para instalá-lo com o Gerenciador de pacotes do seu sistema.

Ubuntu, Debian e no Linux Mint:

$ sudo apt install thunar

Fedora, AlmaLinux, CentOS, e RHEL:

$ sudo dnf install thunar

Arch Linux e Manjaro:

$ sudo pacman -S thunar

Passo 1. Depois que o Thunar estiver instalado, Procure e abra o Utilitário de renomeação em massa.

abrindo o Utilitário de renomeação em massa

Etapa 2. Clique no sinal de mais para adicionar arquivos que você gostaria de renomear.

adicionar uma lista de arquivos ao aplicativo de renomeação em massa

Etapa 3. Escolha na lista de opções o que você gostaria de fazer com os arquivos. Você pode alterá-las todas a letras maiúsculas ou minúsculas, adicionar uma data e hora, inserir texto em uma determinada posição, adicionar numeração automática, substituir caracteres, ou pesquisar e substituir certos padrões nos nomes de arquivo, entre outras coisas. No exemplo abaixo, anexamos uma extensão de arquivo .txt a todos os nossos arquivos.

Ferramenta de renomeação em massa mostrando os nomes antigos e novos nomes de arquivo

Etapa 4. Quando estiver satisfeito com as alterações de nome pré-visualizadas na coluna “Novo Nome”, clique em “Renomear arquivos” para executar a renomeação em massa.

finalizando o trabalho de renomeação em massa

renomeando vários arquivos no Wsl

se você estiver usando o subsistema do Windows Para Linux, alguns comandos acima não funcionarão, particularmente aqueles que envolvem alterar arquivos para minúsculas ou maiúsculas. O Windows não diferencia maiúsculas de minúsculas, portanto considera File.txt, file.txt e FILE.txt o mesmo arquivo.

você simplesmente receberá um erro de que o arquivo já existe se tentar renomear FILE.txt para file.txt. Para evitar esse problema, use um dos exemplos a seguir.

exemplo 1. Altere a extensão em maiúsculas .JPG para minúsculas .jpg para todos os arquivos (usando utilitários padrão).

$ for f in *.JPG; do mv "$f" "${f%.JPG}.jpgaux"; done && for f in *.jpgaux; do mv "$f" "${f%.jpgaux}.jpg"; done

Exemplo 2. Altere a extensão em maiúsculas .JPG para minúsculas .jpg para todos os arquivos (usando o utilitário renomear).

$ rename 's/\.JPG$/\.jpgaux/' *.JPG && rename 's/\.jpgaux$/\.jpg/' *.jpgaux

exemplo 3. Altere a extensão em maiúsculas .JPG para minúsculas .jpg para todos os arquivos (usando o utilitário mmv).

$ mmv '*.JPG' '#1.jpgaux' && mmv '*.jpgaux' '#1.jpg'

exemplo 4. Altere todos os nomes de arquivos para minúsculas (usando utilitários padrão).

$ for f in `ls | grep `; do mv "$f" "`echo $f.aux | tr 'A-Z' 'a-z'`"; done && for f in `ls *.aux`; do mv $f ${f%.*}; done

exemplo 5. Altere todos os nomes de arquivos para minúsculas (usando o utilitário mmv).

$ mmv '*' '#l1.aux' && mmv '*.aux' '#1'

conclusão

é possível usar utilitários Bash padrão para toda a sua renomeação em massa no Linux, mas as ferramentas renomear e mmv tornam muito mais fácil. Também podemos usar o aplicativo de renomeação em massa do Thunar quando preferimos usar GUI sobre a linha de comando. Os exemplos neste guia abrangem uma ampla gama de cenários de renomeação e podem ser facilmente adaptados para atender a outras necessidades.

Deixe uma resposta

O seu endereço de email não será publicado.