Como renomear arquivos e diretórios no Linux

Renomear arquivos é uma das tarefas mais básicas que você geralmente precisa realizar em um sistema Linux. Você pode renomear arquivos usando um gerenciador de arquivos GUI ou através do terminal de linha de comando.

Renomear um único arquivo é fácil, mas renomear vários arquivos de uma vez pode ser um desafio, especialmente para usuários que são novos no Linux .

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 movimento) é usado para renomear ou mover arquivos de um local para outro. A sintaxe do comando mv é a seguinte:

O source pode ser um ou mais arquivos ou diretórios e destination pode ser um único arquivo ou diretório.

  • Se você especificar vários arquivos como source, o destination deve ser um diretório. Nesse caso, os source arquivos são movidos para o diretório de destino.
  • Se você especificar um único arquivo como source, e o destino destination é um diretório existente, então o arquivo é movido para o diretório especificado.
  • Para renomear um arquivo, você precisa especificar um único arquivo como source e um único arquivo como destination destino.

Por exemplo, para renomeie o arquivo file1.txt como file2.txt que você executaria:

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 como find ou dentro de bash for ou while loops para renomear vários arquivos.

O exemplo a seguir mostra como usar o loop Bash for para renomear todos os .html arquivos no diretório atual alterando a extensão .html para .php.

Vamos analisar o código linha por linha:

  • A primeira linha cria um for faz um loop e itera através de uma lista de todos os arquivos contornados com .html.
  • A segunda linha se aplica a cada item da lista e move o arquivo para um um novo substituindo .html por .php. A parte ${file%.html} está usando a expansão do parâmetro shell para remover a parte .html do nome do arquivo.
  • done indica o fim do segmento de loop.

Aqui está um exemplo usando mv em combinação com find para conseguir o mesmo que acima:

O está passando todos os arquivos que terminam com .html no diretório atual para mv um por um usando o -exec opção. A string {} é o nome do arquivo que está sendo processado.

Como você pode ver nos exemplos acima, renomear vários arquivos usando mv comando não é uma tarefa fácil, pois requer um bom conhecimento de script Bash.

Renomeando arquivos com o comando renomear #

O é usado para renomear vários arquivos. Este comando é mais avançado do que mv, pois requer algum conhecimento básico de expressões regulares.

Existem duas versões do rename comando com sintaxe diferente. Neste tutorial, usaremos a versão Perl do comando rename. Se você não tiver esta versão instalada em seu sistema, poderá instalá-la facilmente usando o gerenciador de pacotes de sua distribuição.

  • Instale rename no Ubuntu e Debian

  • Instale rename no CentOS e Fedora

  • Instale rename no Arch Linux

A sintaxe do comando rename é a seguinte:

O comando rename renomeará o files de acordo com o perlexpr expressão regular. Você pode ler mais sobre expressões regulares perl aqui.

O exemplo a seguir mudará todos os arquivos com a extensão .html para .php:

Você pode usar a opção -n para imprimir os nomes dos arquivos a serem renomeados, sem renomeá-los.

A saída terá a seguinte aparência:

Por padrão, o comando rename não sobrescreve os arquivos existentes. Passe a opção -f para permitir que os arquivos existentes sejam sobrescritos:

Abaixo estão alguns mais comuns exemplos de como usar o comando rename:

Conclusão #

Mostramos como usar o mv e rename comandos para renomear arquivos.

Existem também outros comandos para renomear arquivos no Linux, como mmv. Novos usuários Linux que se sentem intimidados pela linha de comando podem usar ferramentas de renomeação em lote da GUI, como o Métamorphose.

Write a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *