Como Renomear Arquivos no Linux

Você é novo no sistema operacional Linux? Se sim, tarefas comuns como renomear arquivos e pastas podem ser diferentes do que você está acostumado. Mas não se preocupe. O conceito de renomear arquivos no Linux é semelhante ao que é feito em outros sistemas operacionais.

Neste tutorial, você aprenderá muitas maneiras de renomear arquivos únicos e múltiplos no Linux, tanto via GUI quanto executando comandos em um terminal.

Vamos começar!

Pré-requisitos

Para seguir este tutorial, certifique-se de ter o seguinte:

Renomear Arquivos no Linux com Gerenciador de Arquivos

Se você está acostumado a gerenciar arquivos via GUI, vamos começar este tutorial para renomear arquivos com um gerenciador de arquivos. Os gerenciadores de arquivos GUI são ótimos, pois você pode ver os arquivos à vista. Um desses gerenciadores de arquivos disponíveis no Linux é o antigo gerenciador de arquivos do GNOME, Nautilus. Este tutorial demonstra como renomear arquivos usando o gerenciador de arquivos Nautilus.

Outros gerenciadores de arquivos do Linux incluem Konqueror, Dolphin, Krusader, Thunar, o gerenciador de arquivos Nemo e Sunflower gerenciador de arquivos. Esses gerenciadores de arquivos realizam a mesma tarefa, mas a renomeação de arquivos ou diretórios pode ser ligeiramente diferente.

Abra seu terminal e execute o comando abaixo para instalar o Nautilus (install nautilus) com o gerenciador de pacotes apt se ainda não o tiver em sua máquina. O comando sudo eleva o comando com direitos de sudo/administrador.

sudo apt install nautilus

Renomear um Único Arquivo

Renomear um único arquivo no Nautilus leva apenas alguns cliques, assim como no Windows File Explorer.

Para renomear um único arquivo, abra o Nautilus, clique com o botão direito no arquivo que deseja renomear e escolha Renomear, como mostrado abaixo.

Este exemplo foca em renomear arquivos, mas o processo é o mesmo para renomear tanto arquivos quanto diretórios.

Renaming a Single File

Agora digite o novo nome do arquivo para substituir o nome original, pressione Enter ou clique em Renomear, e pronto.

Entering New File Name

Renomear Vários Arquivos usando o Gerenciador de Arquivos Nautilus

Assim como no Windows, o Ubuntu oferece mais opções sobre como renomear vários arquivos de uma vez.

Para renomear vários arquivos, selecione todos os arquivos que deseja renomear, clique com o botão direito em qualquer um deles e escolha Renomear. Uma janela pop-up aparecerá onde você pode escolher como deseja renomear os arquivos selecionados.

Renaming Multiple Files Using Nautilus.

Abaixo, há duas opções para escolher, dependendo de como deseja renomear os arquivos selecionados.

  • Renomear usando um modelo – Isso permite renomear arquivos em incrementos.
  • Encontrar e substituir texto – Permite encontrar e substituir certos textos nos nomes dos arquivos.

Renomear Arquivos usando um Modelo

Para renomear arquivos usando um modelo, selecione a opção Renomear usando um modelo.

Agora insira o nome de substituição no campo vazio para renomear arquivos com um modelo e clique no botão +Adicionar e escolha entre os modelos. Para este tutorial, selecione o primeiro (1,2,3,4) e clique em Renomear. Esta opção adiciona números incrementais a cada arquivo após o nome de substituição (Texto1, Texto2,…).

Renaming Files using a Template

Observe que os nomes dos arquivos foram alterados para Texto, seguidos por números incrementais.

Verifying File Names Changed to “Text” with Incrementing Num

Localizando e Substituindo Palavras nos Nomes dos Arquivos

Para renomear vários arquivos com um nome específico de arquivo, selecione a opção Localizar e substituir texto.

Insira o texto no campo Texto Existente e o texto de substituição no campo Substituir Por, depois clique em Renomear para substituir o texto. Essa opção localiza e substitui determinados textos nos nomes dos arquivos.

Replacing Texts in File Names

Agora, você pode ver abaixo que substituiu a palavra “Texto” por “Arquivo” em cada nome de arquivo.

Verifying the word “Text” was replaced with the word “File” on Each File

Renomeando Arquivos com o Comando mv

Se executar comandos é o seu estilo em vez de navegar em uma GUI, prepare-se para aprender como renomear arquivos em um terminal. Renomear arquivos no terminal Linux é semelhante a fazê-lo em outros ambientes de linha de comando, como o PowerShell. Você executa os comandos para renomear o nome do arquivo original pelo nome do arquivo de destino, e é isso.

Há dois cenários ao renomear um arquivo. O primeiro é renomear um arquivo do diretório de trabalho e o segundo é especificando o caminho completo. Dê uma olhada na sintaxe do comando mv abaixo para renomear um arquivo, onde o origem é o nome original e o destino é o nome de substituição.

# Renomear um arquivo ou diretório no diretório de trabalho
mv <source> <destination>
# Renomear um arquivo especificando o caminho completo
mv <~/mydir/source> <~/mydir/destination>

Renomeando um Único Arquivo com o Comando mv

Enquanto a sintaxe do comando mv ainda está fresca em sua mente, vamos tentar renomear um único arquivo.

Para demonstrar como renomear um único arquivo e diretório:

1. Inicie seu terminal e execute a série de comandos abaixo para criar um diretório e dois arquivos de texto.

# Crie um diretório chamado 'teste'
mkdir test 
# Altere para o diretório ~/teste
cd test 
# Crie arquivos de texto chamados 'file1.txt' e 'file2.txt'
touch file1.txt file2.txt 

2. Em seguida, execute o comando ls para listar os arquivos dentro do diretório de trabalho. Abaixo, você pode ver que file1.txt e file2.txt existem no diretório ~/teste.

Listing Files in the Working Directory

3. Execute um dos comandos mv abaixo para renomear file1.txt como file10.txt.

# Renomeie um arquivo no diretório de trabalho
mv file1.txt file10.txt

# Renomeie um arquivo especificando o caminho completo
mv ~/test/file1.txt ~/test/file10.txt

Renomear um diretório é o mesmo que renomear um arquivo, assim: mv ~/teste ~/demo. O símbolo ~ denota o diretório home.

4. Por fim, execute novamente o comando ls para listar os arquivos no diretório de trabalho.

Abaixo, você pode ver que o arquivo file1.txt agora está renomeado como file10.txt.

Confirming file1.txt is renamed as file10.txt

Renomeando Múltiplos Arquivos com um Loop For

Se estiver ocupado com outras tarefas e quiser renomear todos os arquivos de uma vez, precisará usar um comando de loop, como o exemplo abaixo.

Copie o código conforme está, cole no seu terminal e pressione Enter. O código escaneia cada arquivo de texto no diretório de trabalho e renomeia os arquivos com “File” seguido de um número crescente.

# Declara uma variável com valor definido como 1
i=1 
# Escaneia cada arquivo de texto no diretório de trabalho
for file in *.txt; 
# Itera o comando abaixo até que todos os arquivos sejam escaneados
do 
  # Renomeia cada arquivo com "File" seguido do número crescente ($i)
	mv -- "$file" "File$i.txt"
  # Incrementa o valor atual da variável de número em 1
  i=$((i+1)) 
done

Colar o código no terminal funciona bem, mas como boa prática, é melhor criar um arquivo de script para executar em vez disso.

Abaixo, você pode ver em ação como o código renomeia todos os arquivos.

Renaming Files with a For Loop

Renomeando Arquivos no Linux com o Utilitário rename

Se estiver renomeando um único arquivo em sua rotina diária, então o comando mv será suficiente. Mas talvez você esteja querendo renomear vários arquivos com o mesmo padrão de uma vez? Por exemplo, renomear arquivos que começam com uma determinada palavra (arquivo). Nesse caso, instale o utilitário rename em vez disso.

O utilitário rename renomeia vários arquivos, altera formatos de nomes de arquivos e sobrescreve arquivos.

Para instalar o utilitário rename, execute um dos comandos abaixo, dependendo da distribuição Linux em que você está trabalhando.

# Instale o utilitário rename com o gerenciador de pacotes apt para Ubuntu, Debian e Linux Mint
sudo apt install rename
# Instale o utilitário rename com o gerenciador de pacotes dnf para CentOS, Fedora e Red Hat
sudo dnf install prename
# Instale o utilitário rename com o gerenciador de pacotes pacman para Arch Linux / Manjaro Linux
sudo pacman -S perl-rename

Abaixo você pode ver a sintaxe do comando rename.

rename <options> <perlexpr> <files>

Renomeando Múltiplos Arquivos

Com a sintaxe do comando rename em mente, você pode agora renomear arquivos que têm o mesmo padrão. O que é ótimo sobre o comando rename é que você não precisa declarar uma função de loop para renomear vários arquivos como fez na seção “Renomeando Múltiplos Arquivos com um Loop For”.

Talvez você queira renomear arquivos com certas palavras neles. Se for o caso, dê uma olhada na expressão regular Perl ('s/file/myfile/') no comando de exemplo abaixo. Expressões regulares Perl definem um padrão de string com base na linguagem de programação Perl.

Para evitar renomear outros arquivos por engano, liste todos os arquivos afetados antes de renomeá-los adicionando a opção -n, como mostrado abaixo.

rename -n 's/file/myfile/' *.txt
Listing Affected Files Before Renaming

Agora execute um dos comandos rename abaixo para substituir a palavra file por myfile no nome de cada arquivo de texto dentro do diretório de trabalho ou no diretório ~/test/*.txt.

Na expressão Perl ('s/file/myfile/'), o s denota substituição, o que significa que você está renomeando arquivos. Observe que a opção -v é adicionada para retornar quais arquivos o comando renomeou.

# Substituir 'file' por 'myfile' no nome de cada arquivo no diretório de trabalho
rename -v 's/file/myfile/' *.txt
# Substituir 'file' por 'myfile' no nome de cada arquivo no diretório ~/test
rename -v 's/file/myfile/' ~/test/*.txt

Abaixo, você pode ver que cada palavra “file” nos arquivos de texto foi renomeada para “myfile”.

Renaming a Files with the rename Command

Se preferir renomear todos os arquivos, remova a extensão do arquivo ao especificar o caminho do arquivo, por exemplo, rename -v 's/file/myfile/' ~/test/*

Alterando Extensões de Arquivo

Além dos nomes de arquivo, o comando rename também renomeia as extensões de arquivo. Talvez você tenha criado arquivos com a extensão de arquivo errada. Nesse caso, você especificará a extensão do arquivo a ser alterada em uma expressão Perl quando executar o comando rename.

Execute o comando rename abaixo para alterar a extensão de todos os arquivos (*) de .txt para .html no diretório ~/test. O símbolo $ na expressão Perl corresponde ao final de uma string (.txt) para cada nome de arquivo, então o comando apenas altera as extensões de arquivo .txt. E como na renomeação de vários arquivos, adicione a opção -v para listar cada alteração que o comando faz.

rename -v 's/.txt$/.html/' *.txt

Para remover todas as extensões de arquivo, remova a string de substituição na expressão Perl, assim: rename -v 's/.txt$//' *.txt

Como você pode ver na imagem abaixo, as extensões .txt foram alteradas para .html

Changing File Extensions from .txt to .html

Alterando Nomes de Arquivos para Maiúsculas e Minúsculas

Em vez de extensões de arquivo incorretas, você pode estar lidando com nomes de arquivo em minúsculas e vice-versa. Talvez você esteja tentando encontrar um arquivo especificamente em maiúsculas, sem saber que o nome do arquivo está em minúsculas.

O Linux é sensível a maiúsculas e minúsculas, então vamos garantir que você tenha a capitalização correta de cada nome de arquivo. A capitalização é basicamente a distinção de textos entre minúsculas e maiúsculas.

Execute um dos comandos rename abaixo para alterar todos os nomes de arquivos em minúsculas (a-z) no diretório de trabalho (*) para maiúsculas (A-Z) e vice-versa.

# Alterar nome do arquivo de minúsculas para maiúsculas
rename -v 'y/a-z/A-Z/' *
# Alterar nome do arquivo de maiúsculas para minúsculas
rename -v 'y/A-Z/a-z/' *

Você pode ver abaixo ambos os resultados da alteração da capitalização de um nome de arquivo.

Changing File Name from Lowercase to Uppercase and Vice Versa

Substituindo e Removendo Espaços nos Nomes dos Arquivos

Assim como a capitalização de um nome de arquivo, você pode ter dificuldades para encontrar arquivos se eles tiverem espaços em seus nomes. Vamos corrigir isso substituindo os espaços por um caractere ou removendo os espaços completamente.

Execute o comando rename abaixo para substituir espaços em todos os nomes de arquivos por um sublinhado (_) no diretório de trabalho. Como o sublinhado é um metacaractere, escape-o com uma barra invertida (\\_) para declarar o sublinhado literalmente. Metacaracteres são caracteres especiais com significados especiais em um programa de computador.

Observe o g na expressão Perl que indica ao comando para substituir todas as correspondências (espaços), e não apenas a primeira.

rename -v 's/ /\\_/g' *

Abaixo, você pode ver que o comando substituiu todos os espaços por sublinhados.

Replacing spaces with underscores in a file name

Para remover todos os espaços em um nome de arquivo em vez de preenchê-los com um caractere, execute o comando abaixo.

Na expressão Perl abaixo, o asterisco após o espaço em branco (/ *) corresponde a todas as ocorrências de espaços em um nome de arquivo e não apenas a primeira. O caractere de substituição está vazio (//), então o comando rename remove todos os espaços (g).

rename -v "s/ *//g" *

Agora você pode ver abaixo que todos os espaços são removidos de cada nome de arquivo.

Removing all spaces in filenames

Capitalizando a Primeira Letra de Cada Palavra em um Nome de Arquivo

Se preferir manter os espaços e capitalizar a primeira letra de cada palavra em um nome de arquivo, você precisará de uma expressão Perl mais complexa. Dê uma olhada no comando de exemplo abaixo.

A expressão Perl abaixo corresponde a qualquer caractere único (\\w) em um limite de palavra (\\b) desde que o caractere não seja um ponto nem uma apóstrofe (?<![.'\\'']). O comando rename então traduzirá essa letra para maiúscula (u$&).

rename -v 's/(?<![.'\\''])\\b\\w*/\\u$&/g' *

Abaixo, você pode ver que cada palavra nos nomes dos arquivos começa com uma letra maiúscula, mantendo as extensões dos arquivos intactas.

Capitalizing First Letter of Each Word in File Names

Conclusão

Ao longo deste tutorial, você aprendeu muitas maneiras de renomear arquivos do Linux através da GUI e do terminal de linha de comando. Agora você tem uma compreensão sólida de como manipular nomes para arquivos únicos e múltiplos de uma só vez. Por que não aprender a escrever scripts de shell do Linux e criar um script para automatizar a renomeação de arquivos no Linux?

Source:
https://adamtheautomator.com/rename-files-in-linux/