Renomear - uma ferramenta de linha de comando para renomear vários arquivos no Linux

Renomear - uma ferramenta de linha de comando para renomear vários arquivos no Linux

Frequentemente usamos “MV”Comando para renomear um único arquivo em Linux. No entanto, renomear múltiplos ou grupo de arquivos rapidamente torna a tarefa muito difícil em um terminal.

Linux Vem com uma ferramenta embutida muito poderosa chamada Renomear. O Renomear O comando é usado para renomear múltiplos ou grupos de arquivos, renomear arquivos para minúsculas, renomear arquivos para manchas e substituir arquivos usando expressões Perl.

O "Renomear”Comando faz parte de Perl script e reside em “/usr/bin/”Em muitas distribuições Linux. Você pode correr "qual”Comando para descobrir o local do comando renomeado.

$ que renomear/usr/bin/renomear
A sintaxe básica do comando renomeado
Renomear os arquivos de nome antigo/novo/'

O comando renomeado vem com poucos argumentos opcionais, juntamente com obrigatórios Expressão Perl que os guias renomearam o comando para fazer o trabalho real.

Renomear [-v] [-n] [-f] perlexpr [arquivos]
  1. -v: Imprima nomes de arquivos renomeados com sucesso.
  2. -n: Mostre quais arquivos teriam sido renomeados.
  3. -f: Force substituir os arquivos existentes.
  4. perlexpr: Expressão Perl.

Para uma melhor compreensão desse utilitário, discutimos poucos exemplos práticos deste comando no artigo.

1. Um exemplo de comando de renomear básico

Suponha que você seja um monte de arquivos com “.html"Extensão e você quer renomear tudo".html"Arquivos para".php”De uma só vez. Por exemplo, primeiro faça um “ls -l”Para verificar a lista de arquivos com“.htmlExtensão.

# [e-mail protegido]: ~ $ ls -l Total 22532 -RW-RW-R-- 1 Ravisaive Ravisaive 6888896 10 de outubro 12:10 Cricket.HTML -RW-RW-R-- 1 Ravisaive Ravisaive 588895 10 de outubro 12:10 Entertainment.HTML -RW-RW-R-- 1 Ravisaive Ravisaive 6188895 10 de outubro 12:10 Saúde.html -rw-rw-r-- 1 ravisaive ravisaive 6538895 10 de outubro 12:10 estilo de vida.HTML -RW-RW-R-- 1 Ravisaive Ravisaive 938895 10 de outubro 12:10 Notícias.HTML -RW-RW-R-- 1 Ravisaive Ravisaive 938937 10 de outubro 12:11 Fotos.html -rw-rw-r-- 1 ravisaive ravisaive 978137 10 de outubro 12:11 esportes.html

Agora, você deseja alterar a extensão de todos esses arquivos de “.html" para ".php““. Você pode usar o seguinte “Renomear”Comando com Expressão Perl como mostrado abaixo.

[Email Protected]: ~ $ rename 's/\.html $/\.php/' *.html

Observação: No comando acima, usamos dois argumentos.

  1. O primeiro argumento é um Expressão Perl aquele substituto .html com .php.
  2. O segundo argumento diz ao comando renomear para substituir todos os arquivos com *.php.

Vamos verificar se todos os arquivos são renomeados para ".phpExtensão, fazendo ls -l no prompt.

[Email Protected]: ~ $ ls -l Total 22532 -RW-RW-R-- 1 Ravisaive Ravisaive 6888896 10 de outubro 12:10 Cricket.php -rw-rw-r-- 1 ravisaive ravisaive 588895 10 de outubro 12:10 entretenimento.php -rw-rw-r-- 1 ravisaive ravisaive 61888895 10 de outubro 12:10 Saúde.php -rw-rw-r-- 1 ravisaive ravisaive 65388895 10 de outubro 12:10 estilo de vida.php -rw-rw-r-- 1 Ravisaive Ravisaive 938895 10 de outubro 12:10 Notícias.php -rw-rw-r-- 1 ravisaive ravisaive 938937 10 de outubro 12:11 Fotos.php -rw-rw-r-- 1 ravisaive ravisaive 978137 10 de outubro 12:11 esportes.php

Agora você pode ver acima que todo o html Os arquivos são renomeados para php.

2. Verifique as alterações antes de executar o comando renomear

Ao executar tarefas críticas ou de renomear grandes, você sempre pode verificar as alterações executando o comando renomear com “-n”Argumento. O "-n”O parâmetro dirá exatamente o que as mudanças ocorreriam, mas as mudanças não são feitas de verdade. Aqui está o exemplo do comando abaixo.

[Email protegido]: ~ $ renomear -n 's/\.php $/\.html/' *.PHP Cricket.PHP renomeado como críquete.Entertainment HTML.PHP renomeado como entretenimento.Saúde HTML.PHP renomeado como saúde.Estilo de vida HTML.PHP renomeado como estilo de vida.HTML News.PHP renomeado como notícia.Fotos HTML.PHP renomeado como fotos.Sports HTML.PHP renomeado como esportes.html

Observação: A saída do comando acima exibe apenas alterações, mas em reais as mudanças não são feitas, a menos que você execute o comando sem “-n" trocar.

3. Imprimir saída de renomeação

Vimos que o comando renomeado não exibiu nenhuma informação de alterações que ele faça. Então, se você quiser obter os detalhes do comando renomear (como fizemos usando “-n”Opção), aqui usamos“-v”Opção para imprimir os detalhes completos de todas as alterações feitas pelo comando renomeado com sucesso.

[Email Protected]: ~ $ renome -v 's/\.php $/\.html/' *.PHP Cricket.PHP renomeado como críquete.Entertainment HTML.PHP renomeado como entretenimento.Saúde HTML.PHP renomeado como saúde.Estilo de vida HTML.PHP renomeado como estilo de vida.HTML News.PHP renomeado como notícia.Fotos HTML.PHP renomeado como fotos.Sports HTML.PHP renomeado como esportes.html

4. Converta todas as minúsculas em maiúsculas e vice-versa

Para renomear em lote todos os arquivos com minúscula nomes para maiúscula. Por exemplo, eu quero encobrir todos esses arquivos a seguir de mais baixo para superior caso.

Inferior para maiúsculas
[Email Protected]: ~ $ ls -l Total 22532 -RW-RW-R-- 1 Ravisaive Ravisaive 6888896 10 de outubro 12:10 Cricket.HTML -RW-RW-R-- 1 Ravisaive Ravisaive 588895 10 de outubro 12:10 Entertainment.HTML -RW-RW-R-- 1 Ravisaive Ravisaive 6188895 10 de outubro 12:10 Saúde.html -rw-rw-r-- 1 ravisaive ravisaive 6538895 10 de outubro 12:10 estilo de vida.HTML -RW-RW-R-- 1 Ravisaive Ravisaive 938895 10 de outubro 12:10 Notícias.HTML -RW-RW-R-- 1 Ravisaive Ravisaive 938937 10 de outubro 12:11 Fotos.html -rw-rw-r-- 1 ravisaive ravisaive 978137 10 de outubro 12:11 esportes.html

Apenas, use o seguinte comando com expressão perl.

[Email Protected]: ~ $ renomear 'y/a-z/a-z/' * *.html

Depois de executar o comando acima, você pode verificar as alterações fazendo “ls -l““.

[Email Protected]: ~ $ ls -l Total 22532 -RW-RW-R-- 1 Ravisaive Ravisaive 6888896 10 de outubro 12:10 Cricket.HTML -RW-RW-R-- 1 Ravisaive Ravisaive 588895 10 de outubro 12:10 Entertainment.HTML -RW-RW-R-- 1 Ravisaive Ravisaive 6188895 10 de outubro 12:10 Saúde.Html -rw-rw-r-- 1 ravisaive ravisaive 6538895 10 de outubro 12:10 estilo de vida.HTML -RW-RW-R-- 1 Ravisaive Ravisaive 938895 10 de outubro 12:10 Notícias.HTML -RW-RW-R-- 1 Ravisaive Ravisaive 938937 10 de outubro 12:11 Fotos.Html -rw-rw-r-- 1 ravisaive ravisaive 978137 10 de outubro 12:11 esportes.Html

Você pode ver que o comando acima realmente renomeou todos os nomes de arquivos de minúsculos (com .Html extensão) para o maiúsculas.

Parte superior a minúscula

Da mesma forma, você também pode converter tudo maiúscula personagens para minúscula Usando o seguinte comando.

[Email Protected]: ~ $ renomear 'y/a-z/a-z/' * *.Html
[Email Protected]: ~ $ ls -l Total 22532 -RW-RW-R-- 1 Ravisaive Ravisaive 6888896 10 de outubro 12:10 Cricket.HTML -RW-RW-R-- 1 Ravisaive Ravisaive 588895 10 de outubro 12:10 Entertainment.HTML -RW-RW-R-- 1 Ravisaive Ravisaive 6188895 10 de outubro 12:10 Saúde.html -rw-rw-r-- 1 ravisaive ravisaive 6538895 10 de outubro 12:10 estilo de vida.HTML -RW-RW-R-- 1 Ravisaive Ravisaive 938895 10 de outubro 12:10 Notícias.HTML -RW-RW-R-- 1 Ravisaive Ravisaive 938937 10 de outubro 12:11 Fotos.html -rw-rw-r-- 1 ravisaive ravisaive 978137 10 de outubro 12:11 esportes.html

5. Capitalizar a primeira letra de nome do arquivo

Para capitalizar apenas a primeira letra de cada nome do arquivo, use o seguinte comando.

# renomear 's/\ b (\ w)/\ u $ 1/g' * *.ext 
Capitalizar o nome da primeira letra

6. Sobrescrever arquivos existentes

Se você deseja substituir com força os arquivos existentes, use o “-f”Opção como mostrado abaixo.

[Email Protected]: ~ $ rename -f 's/a/b/' * *.html

Se você gostaria de saber mais sobre o comando renomeado, digite o “Renomear homem”No terminal.

O Renomear O comando é muito útil, se você estiver lidando com a renomeação múltipla ou em lote de arquivos da linha de comando. Experimente e me avise, até que ponto é útil em termos de renomeação de arquivos.