Renomeando arquivos no linux
Índice:
- Renomeando arquivos com o comando mv
- Renomeando vários arquivos com o comando mv
- Renomeando arquivos com o comando renomear
- Conclusão
Renomear arquivos e diretórios é uma das tarefas mais básicas que você geralmente precisa executar em um sistema Linux.
Renomear um único arquivo é fácil, mas renomear vários arquivos de uma só vez pode ser um desafio, especialmente para usuários iniciantes no Linux. Você pode renomear arquivos usando um gerenciador de arquivos da GUI ou por meio do terminal da linha de comandos.
Neste tutorial, mostraremos como usar os comandos
mv
e
rename
para renomear arquivos e diretórios.
Renomeando arquivos com o comando mv
O comando
mv
(abreviado de mover) é usado para renomear ou mover arquivos de um local para outro. A sintaxe para o comando
mv
é a seguinte:
mv source destination
A
source
pode ser um ou mais arquivos ou diretórios e o
destination
pode ser um único arquivo ou diretório.
- Se você especificar vários arquivos como
source, odestinationdeverá ser um diretório. Nesse caso, os arquivos desourcesão movidos para o diretório de destino. Se você especificar um único arquivo comosourcee odestinationdestino for um diretório existente, o arquivo será movido para o diretório especificado. Para renomear um arquivo, é necessário especificar um arquivo único comosourcee arquivo único comodestinationdestino.
Por exemplo, para renomear o arquivo
file1.txt
como
file2.txt
você deve executar:
Renomeando vários arquivos com o comando mv
O comando
mv
pode renomear apenas um arquivo por vez, mas pode ser usado em conjunto com outros comandos, como
find
ou dentro do bash por ou enquanto loops para renomear vários arquivos.
O exemplo a seguir mostra como usar o loop Bash for para renomear todos os arquivos
.html
no diretório atual, alterando a extensão
.html
para
.php
.
for f in *.html; do mv -- "$f" "${f%.html}.php" done
Vamos analisar o código linha por linha:
- A primeira linha cria um loop for e percorre uma lista de todos os arquivos com a
.html. A segunda linha se aplica a cada item da lista e move o arquivo para um novo, substituindo.htmlpor.php. A parte${file%.html}está usando a expansão do parâmetro shell para remover a parte.htmldo nome do arquivo.done indica o final do segmento do loop.
Também podemos usar o comando
mv
em combinação com o
find
para obter o mesmo que acima.
find. -depth -name "*.html" -exec sh -c 'f="{}"; mv -- "$f" "${f%.html}.php"' ;
O comando find está passando todos os arquivos que terminam com
.html
no diretório atual para o comando
mv
um por um, usando a opção
-exec
. A sequência
{}
é o nome do arquivo que está sendo processado no momento.
Como você pode ver nos exemplos acima, renomear vários arquivos usando o comando
mv
não é uma tarefa fácil, pois requer um bom conhecimento dos scripts do Bash.
Renomeando arquivos com o comando renomear
O comando
rename
é usado para renomear vários arquivos. Este comando é mais avançado que o
mv
, pois requer algum conhecimento básico de expressões regulares.
Existem duas versões do comando
rename
com sintaxe diferente. Neste tutorial, usaremos a versão perl do comando
rename
. Se você não possui esta versão instalada no seu sistema, pode instalá-la facilmente usando o gerenciador de pacotes da sua distribuição.
-
Instalar renomear no Ubuntu e Debian
sudo apt install renameInstalar renomear no CentOS e Fedora
sudo yum install prenameInstalar renomear no Arch Linux
yay perl-rename ## or yaourt -S perl-rename
A sintaxe para o comando
rename
é a seguinte:
rename perlexpr files
O comando rename renomeará todos os
files
acordo com a expressão regular
perlexpr
especificada. Você pode sobre expressões regulares do perl aqui.
Por exemplo, o seguinte comando alterará todos os arquivos com a extensão
.html
para
.php
:
rename 's/.html/.php/' *.html
Você pode usar o argumento
-n
para imprimir nomes de arquivos a serem renomeados, sem renomeá-los.
rename -n 's/.html/.php/' *.html
A saída será mais ou menos assim:
rename(file-90.html, file-90.php) rename(file-91.html, file-91.php) rename(file-92.html, file-92.php) rename(file-93.html, file-93.php) rename(file-94.html, file-94.php)
Por padrão, o comando renomear não substituirá os arquivos existentes. Passe o argumento
-f
para permitir que os arquivos existentes sejam substituídos.
rename -f 's/.html/.php/' *.html
Abaixo estão alguns exemplos mais comuns de como usar o comando rename:
-
Substituir espaços nos nomes de arquivos por sublinhados
rename 'y/ /_/' *Converter nomes de arquivos em minúsculas
rename 'y/AZ/az/' *Converter nomes de arquivos em maiúsculas
rename 'y/az/AZ/' *
Conclusão
Até agora você deve ter um bom entendimento de como usar os comandos
mv
e
rename
para renomear arquivos. Obviamente, existem outros comandos para renomear arquivos no Linux, como o
mmv
. Os novos usuários do Linux que são intimidados pela linha de comando podem usar ferramentas de renomeação em lote da GUI, como o Métamorphose.
Renomear avançado: Freeware renomear arquivos em lote no Windows
Renomear avançado é um utilitário de renomeação de arquivo em lote gratuito para renomear vários arquivos no Windows. Configure o método de renomeação e renomeie vários arquivos e pastas de uma só vez.
Como copiar arquivos e diretórios no linux
Copiar arquivos e diretórios é uma das tarefas mais comuns que você executará ao trabalhar na linha de comando. No Linux, existem vários comandos para copiar arquivos, sendo cp e rsync as ferramentas mais usadas.
Renomear comando no linux (renomear vários arquivos)
O comando rename renomeia os arquivos fornecidos, substituindo a expressão de pesquisa em seu nome pela substituição especificada.







