introdução
o Linux oferece várias opções para renomear arquivos, incluindo o uso da GUI e vários comandos de terminal dedicados. Isso torna relativamente fácil renomear arquivos individuais, mas pode ser um desafio renomear vários arquivos de uma só vez.
neste tutorial, examinaremos diferentes comandos que você pode usar no terminal Linux para renomear arquivos no Linux.
pré-Requisitos
- Um sistema executando uma distribuição Linux
- Uma conta com privilégios sudo
- Acesso à janela de terminal/linha de comando
- Acesso a um editor de texto, como o Vim ou Nano
Renomear Arquivos com o Comando mv
Linux mv
(mover) comando é usado para mover arquivos e diretórios a partir do terminal. Ele usa a seguinte sintaxe:
mv
se você especificar um diretório como destino ao usar o comando mv
, o arquivo de origem será movido para esse diretório. Se o destino for outro nome de arquivo, o comando mv
renomeia o arquivo de origem para esse nome.
Nota: Saiba mais sobre como usar o comando mv em nosso guia para mover diretórios no Linux.
renomeie um único arquivo com o comando mv
usando o comando mv
com sua sintaxe padrão, você pode renomear um único arquivo:
mv
por exemplo, se quisermos renomear example1.txt em example2.txt, devemos utilizar:
mv example1.txt example2.txt
uma vez que não há saída se o comando for bem-sucedido, nós estamos usando o ls
comando para verificar se o nome é alterado:
ls -l
Renomear Vários Arquivos com o Comando mv
Em seu próprio, o mv
comando renomeia um único arquivo. No entanto, combiná-lo com outros comandos permite renomear vários arquivos ao mesmo tempo.
um método é usar o comando find
para selecionar vários arquivos com um nome semelhante e, em seguida, usar o comando mv
para renomeá – los:
find . -depth -name "" -exec sh -c 'f="{}"; mv -- "$f" "${f%}"' \;
usando essa sintaxe, o comando find
define um elemento do nome do arquivo atual como o parâmetro de pesquisa. Em seguida, -exec
executa o comando mv
em qualquer arquivo que corresponda à pesquisa, alterando seus nomes de arquivos atuais para o novo.
por exemplo, se tivermos exemplo1.txt, example2.txt, e example3.txt e deseja alterar a extensão para .documento:
find . -depth -name "*.txt" -exec sh -c 'f="{}"; mv -- "$f" "${f%.txt}.pdf"' \;
outro método é usar o comando mv
como parte de um loop <strong>for</strong>
em um script bash.
usando o mesmo exemplo, comece criando e abrindo um arquivo de script bash usando um editor de texto como o Nano:
sudo nano rename_files.sh
Nota: Saiba mais sobre como usar scripts bash para gerenciar arquivos e diretórios no Linux.
adicione as seguintes linhas ao script:
#!/bin/bashfor f in *.txt; do mv -- "$f" "${f%.txt}.pdf"done
no script acima:
- a primeira linha instrui o script a pesquisar todos os arquivos no diretório atual que terminam com .txt.
- a segunda linha usa o comando
mv
em cada arquivo encontrado para substituir o.extensão txt com .documento. - a terceira linha termina o segmento de loop.
pressione Ctrl + X, digite Y e pressione Enter para salvar as alterações no script e sair.
Use o comando sh
para executar o script:
sh rename_files.sh
Renomear arquivo com o comando renomear
o comando rename
é usado para renomear vários arquivos ou diretórios no Linux. Ele oferece mais recursos do que o comando mv
, mas pode ser mais desafiador de usar, pois requer conhecimento básico das expressões Perl.
como instalar o comando rename
em muitas distribuições Linux, o comando rename
não está disponível por padrão. Se o seu sistema estiver faltando o comando rename
, instale-o com:
- Para o Ubuntu e o Debian, use
sudo apt install rename
- Para CentOS e Fedora, use
sudo yum install prename
- Arch Linux, use
sudo pacman -S
mudar o nome
renomear a Sintaxe de Comando e Opções
Existem três tipos de expressões regulares do Perl: correspondência, substituto e traduzir. O comando rename
usa expressões substitutas e de tradução para alterar nomes de arquivos e diretórios.
expressões substitutas substituem uma parte do nome do arquivo por uma string diferente. Eles usam a seguinte sintaxe:
rename 's///'
com esta sintaxe, o comando renomeia o arquivo substituindo a primeira ocorrência do elemento nome do arquivo pela substituição. No comando acima:
-
rename
: invoca o comando renomear. -
: fornece um argumento opcional que altera a forma como o comando é executado.
-
s
: indica uma expressão substituta. -
: especifica a parte do nome do arquivo que você deseja substituir.
-
: especifica uma substituição para a parte do nome do arquivo atual.
-
: define o arquivo que você deseja renomear.
uma expressão translate traduz uma sequência de caracteres em outra, caractere para caractere. Este tipo de expressão usa a seguinte sintaxe:
rename 'y///'
um exemplo de um rename
comando usando uma expressão traduzir:
rename 'y/abc/xyz/'
neste exemplo, cada um caractere no nome do arquivo é substituído por um x, cada b por y, e cada c por um z.
mudar O nome do comando usa as seguintes opções:
-
-a
: Substitui todas as ocorrências do nome do arquivo do elemento, em vez de apenas o primeiro. -
-f
: Força uma substituição de arquivos existentes. -
-h
: exibe o texto de Ajuda. -
-i
: exibe um prompt Antes de sobrescrever arquivos existentes. -
-l
: Substitui a última ocorrência do elemento filename em vez do primeiro. -
-n
: executa uma corrida seca, não fazendo alterações permanentes. Melhor combinado com a saída detalhada (-v
). -
-s
: renomeia o destino em vez do link simbólico. -
-v
: mostra uma versão detalhada da saída. -
-V
: exibe a versão do comando.
renomear exemplos de comando
1. Alterar a extensão do arquivo
retornando ao nosso último exemplo, para alterar a extensão do arquivo .txt para .pdf, use:
rename -v 's/.txt/.pdf/' *.txt
2. Substituir uma parte de um nome de arquivo
substituir uma parte diferente do nome de arquivo segue a mesma sintaxe. Para renomear example1.txt, example2.txt, e example3.TXT para test1.txt, test2.txt e text3.txt, use:
rename -v 's/example/test/' *.txt
3. Excluir uma parte de um nome de arquivo
a opção rename
também permite excluir uma parte do nome do arquivo omitindo a parte de substituição da expressão. Por exemplo, se quisermos encurtar o exemplo em ex:
rename -v 's/ample//' *.txt
4. Renomeie arquivos com nomes semelhantes
outro uso para a opção rename
é renomear arquivos com nomes semelhantes. Por exemplo, se quisermos renomear arquivos com exemplo e amostra em seu nome para testar:
rename -v 's/(ex|s)ample/test/' *.txt
5. Renomear arquivos caractere por caractere
o comando rename
também permite que você use traduzir expressões para renomear arquivos em uma base caractere por caractere. Por exemplo, se você deseja renomear vários arquivos chamados arquivo de exemplo, substituindo o espaço em branco por um sublinhado (_):
rename -v 'y/ /\_/' *.txt
6. Converter caracteres minúsculos
para converter caracteres minúsculos em nomes de arquivos em caracteres maiúsculos, use:
rename -v 'y/a-z/A-Z/' *.txt
7. Converter caracteres maiúsculos
o reverso também funciona se mudarmos a ordem dos caracteres maiúsculos e minúsculos na expressão:
rename -v 'y/A-Z/a-z/' *.TXT
Nota: Tenha cuidado ao alterar o caso do caractere, pois isso também altera a extensão do arquivo.
conclusão
depois de ler este tutorial, você deve ser capaz de renomear arquivos usando os comandos mv
e rename
no Linux.
Saiba mais sobre como usar comandos do Linux em nossa folha de dicas de comandos do Linux.