Renomeie os arquivos Linux com renomear

Renomeie os arquivos Linux com renomear

Ao trabalhar com arquivos, renomeá -los é uma das ações mais básicas. No Linux, renomear um arquivo ou diretório é feito principalmente usando MV. No entanto, quando se trata de renomear vários arquivos ou pastas, o uso de MV se torna complexo. Requer a construção de loops e tubulações complexos para fazer o trabalho. O comando renomeado foi projetado especificamente para essas situações.

Renomear é uma poderosa ferramenta de renomeação de lote que usa a expressão Perl para renomear vários arquivos e diretórios em um único comando. Neste guia, confira como renomear arquivos com renomear.

Instalando renomear

O comando renomeado não vem pré-instalado. Felizmente, podemos instalá -lo a partir dos servidores de pacotes oficiais de qualquer distro Linux.

Existem duas versões de ferramenta, cada uma com sua própria sintaxe e recurso. Para este guia, vamos nos concentrar no que usa Perl.

No caso de Debian/Ubuntu, a renomear está disponível como o pacote "renomear". Instale o pacote.

$ sudo apt update
$ sudo apt install renomear

No caso de Centos e Fedora, o nome do pacote é diferente. É conhecido como "pré -nome". Instale o pacote.

$ sudo yum install prename

No caso do Arch Linux, o nome do pacote é "perl-rename". Instale o pacote.

$ sudo pacman -s perl -rename

Usando renomear

Vamos dar uma olhada em várias maneiras de usar o comando renomear.

Estrutura de comando básica

A ferramenta segue a seguinte estrutura de comando:

$ renomear

O comando renomeado é na verdade um script perl. Ele opera usando a expressão Perl. Como você pode adivinhar, usá -lo ao máximo exige experiência em expressões regulares Perl.

Embora existam inúmeras maneiras de construir a expressão Perl, a seguinte expressão é bastante comum para encontrar ao trabalhar com o comando renomear.

$ s///

Uso básico

Aqui, eu tenho um monte de arquivos fictícios prontos para serem renomeados.

O comando renomeado a seguir renomeará todas as extensões de arquivo de txt para texto.

$ renomear 's/.TXT/.texto/' *.TXT

Aqui, os arquivos de destino a renomear são expressos usando o símbolo curinga (*).

Modo verboso

Por padrão, renomear não imprimir muita saída. No entanto, ter detalhes mais detalhados sobre suas ações pode ajudar em vários cenários, especialmente quando se trata de depuração. No modo detalhado, renomeie mais informações sobre a tarefa contínua para entender e identificar melhor possíveis problemas.

Para executar renomear no modo detalhado, adicione a bandeira "-v".

$ rename -v 's/.TXT/.texto/' *.TXT

Funcionamento a seco

Ao renomear, as mudanças são tornadas permanentes. Em muitas situações, isso levará a problemas desnecessários. Para evitar alterações indesejadas nos nomes de arquivos e pastas, podemos testar o comando usando uma corrida a seco.

Uma corrida a seco é basicamente uma execução de teste que não muda nada com os arquivos e pastas reais. No entanto, o uso do modo detalhado imprimirá a saída como se o comando fosse realmente executado. É por isso que é sempre uma boa ideia a secar com o modo detalhado. É recomendável realizar uma corrida a seco antes de executar qualquer comando de renomear em arquivos e pastas importantes.

Para realizar uma corrida a seco, adicione a bandeira "-n".

$ renomear -v -n 's/.TXT/.texto/' *.TXT

Substituindo arquivos existentes

O comportamento padrão da renomeação não é substituir os arquivos já existentes. Se você não tem medo de substituir os existentes, poderá forçar a renomear a substituir usando a bandeira "-f".

$ renomear -v -f 's/.TXT/.texto/' *.TXT

Exemplo de renomear expressões Perl

A estrutura básica do comando renomear é muito simples. Seu principal poder é a incorporação das expressões regulares Perl. A expressão regular é uma maneira inteligente de descrever um padrão e especificar as ações. Para iniciantes, aqui está um guia sobre expressão regular usando grep e egrep. Embora usando ferramentas diferentes, os fundamentos da expressão regular ainda se aplicam.

Aqui está uma lista restrita de algumas expressões de renomear comuns. Observe que estes são apenas para referência. Antes de colocá -los em uso, sempre faça uma corrida a seco para garantir que esteja funcionando como pretendido.

Substituindo espaços

A expressão a seguir substituirá os espaços em nomes de arquivos por um sublinhado.

$ 'y//_/'

Convertendo nomes de arquivos em maiúsculas

Precisa dos nomes de arquivos em maiúsculas? A seguinte expressão Perl combinada com o comando renomear fará exatamente isso.

$ 'y/a-z/a-z/'

Convertendo nomes de arquivos em minúsculas

A expressão perl a seguir, quando usada com renomear, renomeará os nomes de arquivos da maçaneta para a minúcia.

$ 'y/a-z/a-z/'

Removendo partes dos nomes de arquivos

Se os nomes de arquivos contêm conteúdos desnecessários, sempre podemos removê -los usando a expressão Perl. Por exemplo, para renomear arquivos de backup (.bak) para os arquivos originais, podemos simplesmente remover o “.Parte Bak ”do nome do arquivo.

$ 's/\ bak $ //'

Renomear vários padrões de correspondência

Digamos que você esteja com arquivos de texto e txt. Apesar de diferentes extensões de arquivo, ambos estão no mesmo formato. Em vez de lidar com texto e txt, podemos renomear todos eles para arquivos txt.

$ 's/\.te?XT $/.txt/i '

Da mesma forma, em vez de lidar com JPEG e JPG, podemos renomear todos eles para JPG.

$ 's/\.JPE?g $/.jpg/i '

Observe que em ambos os casos, as extensões de arquivo têm semelhanças, exceto por um caractere. É por isso que poderíamos usar este atalho. Se as extensões de arquivo forem completamente diferentes, não funcionará.

Conclusão

O comando renomeado é uma ferramenta simples para dominar. É realmente poderoso quando você está trabalhando com toneladas de arquivos e renomeando -os em vários formatos. Também é seguro incorporar scripts de bash para automação. Se você é iniciante, aqui está um maravilhoso guia de partida sobre scripts de basquete.

Computação feliz!