Guia do usuário: Use renomear Command no Linux

Você já tentou usar o comando renomear em Linux ? Você deseja controlar a usina de renomeação de arquivos do mundo Linux e fornecer mv —e você — um descanso. Renomear é rápido, flexível e muito mais fácil. Aqui está um guia detalhado sobre esta potência de um comando.





O que está acontecendo de errado com mv?

Não há nada de errado com mv . No entanto, o comando faz um bom trabalho. Além disso, você pode encontrá-lo em todas as distribuições Linux, no macOS e em outros sistemas operacionais semelhantes ao Unix. No entanto, está sempre disponível. Mas, certamente, você não quer uma pá, mas precisa de uma escavadeira.



O comando mv tem um propósito na vida, que é mover arquivos. É um efeito colateral seguro que pode ser usado para mover um arquivo mais antigo para dentro o novo arquivo, com um novo nome. O efeito é renomear o arquivo, para que você obtenha o que deseja. Mas mv não é uma ferramenta de renomeação de arquivos personalizada.

Como renomear um único arquivo com mv

renomear arquivos no Linux



Se você deseja usar mv para renomear um arquivo, em seguida, digite mv, espaço, o nome do arquivo, espaço e o novo nome que você deseja que o arquivo tenha. Em seguida, pressione Enter.



Você também pode usar ls para verificar se o arquivo foi renomeado ou não

mv rename

Como renomear vários arquivos com mv

As coisas ficam complexas depois de renomear vários arquivos. perl-rename não tem capacidade para renomear vários arquivos. Você deve recorrer ao uso de alguns truques úteis do Bash. É bom se você conhece alguma fu de linha de comando de nível médio, mas a dificuldade de renomear arquivos diferentes com mv representa apenas a facilidade de uso mv para renomear um único arquivo.



As coisas aumentam instantaneamente.



Digamos que este seja um diretório com muitos arquivos, de tipos diferentes. Alguns arquivos têm um .prog extensão. Queremos renomear esses arquivos na linha de comando para que eles tenham um .prg extensão.

Venha, vamos dar uma olhada nos arquivos.

rename

Aqui está um método para fazer isso que não pode recorrer à gravação de um arquivo de script Bash real.

rename

Funcionou ou não? Vamos verificar os arquivos e prosseguir.

rename

Então, funciona bem. Todos eles são .prg arquivos agora, e não há .prog arquivos no diretório.

O que aconteceu?

O que o comando longo realmente fez? Vamos dar uma olhada.

prename

A primeira parte começa um loop que vai processar cada .prog arquivo no diretório, por sua vez.

Outra parte diz o que o processamento vai Faz . Usa mv para mover cada arquivo para o novo arquivo. O novo nome do arquivo será bastante semelhante ao nome do arquivo original, exceto pela parte .prog. Além disso, a extensão de .prg será usada.

Aqui está uma maneira fácil

Definitivamente. Aqui está o renomear comando.

renomear arquivos no Linux

Não faz parte da distribuição padrão do Linux, portanto, você deseja instalá-lo. Além disso, ele tem um nome diferente em várias famílias de Linux, mas todos funcionam de maneira semelhante. Você simplesmente substituirá o nome do comando correto de acordo com o gosto do Linux que estiver usando.

Em distribuições derivadas de Debian ou Ubuntu, você simplesmente instala perl-rename como isso:

*.prog

Em distribuições derivadas de RedHat ou Fedora, você simplesmente instala prename como isso. Lembre-se de que o p inicial representa Perl.

rename

Para instalá-lo no Manjaro Linux, use o seguinte comando. Lembre-se de que o comando de renomeação é conhecido como s.

.prog

Use renomear Comando -> Come Let’s One More Try

Aqui, usaremos rename. Estamos fazendo isso para que tenhamos um conjunto de arquivos .prog.

.prg

Venha, vamos usar o comando fornecido abaixo para renomeá-los. Também verificaremos com ls comando se funcionou ou não. Se você deseja substituir rename com o nome de comando preciso para Linux se não for possível usar o Ubuntu ou um Linux derivado do Debian.

ls ls

Funciona bem, agora todos são arquivos .prg, excluindo .prog arquivos deixados no diretório.

O que aconteceu aqui?

Vamos discutir isso em três partes.

No primeiro parte, você verá o nome do comando, rename (ou ls ou ls, para as outras distribuições).

O terceiro durar parte é ^, o que explica $ para operar em todos os arquivos .prog.

O segundo parte explica o trabalho que gostamos de ser feito em cada nome de arquivo. O ^ significa substituto. O primeiro termo (ls) é o que ls irá procurar em cada nome de arquivo e o segundo termo (ls) é o que ele será substituído.

como liberar espaço de armazenamento html5

A parte do meio ou expressão central dos comandos é uma ‘expressão regular’ Perl e é o que fornece o s/ comandar sua confiabilidade.

Modificando outras partes de um nome de arquivo

Modificamos as extensões de nome de arquivo até agora, vamos mudar outras partes dos nomes de arquivo.

No diretório, existem muitos arquivos de código-fonte C. Todos os nomes de arquivo são prefixados com gíria_. Também podemos verificar isso com y/.

a-z

Aqui, substituímos todas as ocorrências de slang_ por sl_. O formato do comando é bastante familiar para nós. Estamos apenas modificando o termo de pesquisa, o termo de substituição e o tipo de arquivo.

A-Z

Aqui, estamos procurando por arquivos .c e procurando por slang_. Sempre que você encontrar slang_ em um nome de arquivo, ele será substituído por sl_.

Você também pode verificar o resultado do comando após repetir o comando ls acima usando os mesmos parâmetros:

a-z

Removendo parte de um nome de arquivo

Também podemos excluir uma parte de um nome de arquivo após substituir o termo de pesquisa por nada.

mv oldfile.txt newfile.txt

Também podemos ver a partir do ls comandar que nosso .c os arquivos são todos prefixados com sl_. Vamos deixar isso de lado.

O renomear O comando segue o mesmo formato mencionado acima. Vamos pesquisar arquivos .c. O termo de pesquisa é sl_, mas não há termo de substituição. Duas barras invertidas ‘//’ sem nada entre elas significam uma string vazia.

ls *.txt
pode processar cada arquivo .c por vez. Além disso, ele procura sl_ no nome do arquivo. Se você o encontrou, você não pode ser substituído por nada. Como alternativa, o termo de pesquisa é removido.

Outro uso do

ls *.prog -l
comando confirma que o prefixo sl_ foi apagado de todos os arquivos .c.

Limite de modificações para partes específicas de nomes de arquivo

Venha, vamos usar

for f in *.prog; do mv -- '$f' '${f%.prog}.prg'
para visualizar os arquivos que possuem a string param no nome do arquivo. Então vamos usar renomear comando para substituir a string por meio do parâmetro string. Além disso, usamos ls mais uma vez para ver o efeito do renomear comando teve nesses arquivos.

ls *.pr*
for f in *.prog; do mv -- '$f' '${f%.prog}.prg'
sudo apt-get install rename

Você verá quatro arquivos com param em seu nome de arquivo. param.c, param_one.c e param_two.c têm todos param no começando de seu nome. third_param.c tem param no durar de seu nome, logo antes da extensão.

Você pode pesquisar renomear comando para param em todo o nome do arquivo. Você pode então substituí-lo por parâmetro em todos os casos.

Outro uso de ls comando nos mostra o que aconteceu exatamente. Se param estava no início ou no final do nome do arquivo. Você também pode substituí-lo por um parâmetro.

Podemos usar os metacaracteres de Perl para purificar o comportamento da expressão central. Metacaracteres são os sinais que representam sequências ou posições de caracteres. Por exemplo,

sudo dnf install prename
significa o início de uma string, (.) significa qualquer caractere único (além de um caractere de nova linha),
sudo pacman -Syu perl-rename
significa o fim de uma string.

Além disso, usamos o início do metacaractere string (

ls *.prog
) para limitar nossa pesquisa ao início dos nomes de arquivo.

rename 's/.prog/.prg/' *.prog
ls *.pr*
ls sl*.c
rename 's/slang_/sl_' *.c

Os arquivos que renomeamos estão listados anteriormente. Além disso, podemos ver que o parâmetro string está no início de 3 nomes de arquivo e está localizado no final de um dos nomes de arquivo.

Nosso renomear comando usa o início do metacaractere de linha (^) antes do parâmetro do termo de pesquisa. Explica apenas considerar o termo de pesquisa a ser encontrado se ele estiver no início do nome do arquivo. O parâmetro da string de pesquisa será evitado se estiver em qualquer outro lugar no nome do arquivo.

Olhando com

ls sl*.c
, podemos então ver que o nome do arquivo tendo parâmetro no durar do nome do arquivo não foi alterado. Mas os três nomes de arquivo tendo parâmetro no começando de seus nomes tendo a string de pesquisa substituída pelo valor do termo substituto.

O renomear o poder está no poder do Perl.

Olhando com agrupamentos

Este é o caso em que você provavelmente tem arquivos com as mesmas strings em seus nomes. Eles não são exatamente iguais às mesmas strings, então você apenas procura e a substituição não pode funcionar aqui.

Neste exemplo, usamos

ls *.c rename 's/sl_//' *.c ls *.c
para ver quais arquivos temos que começa com str. Além disso, existem dois deles, string.ce strangle.c. Também podemos renomear ambas as strings depois de usar um método conhecido como agrupamento.

A expressão intermediária do renomear o comando iráprocurar por strings dentro de nomes de arquivo que tenham a sequência de stri ou Stra. Aqui, essas sequências são seguidas por ng. Alternativamente, nosso termo de pesquisa irá procurar por string e strang. O termo de substituição é bang.

ls *param*
rename 's/param/parameter' *.c
ls *param*

Depois de usar

ls *param*.c
outra vez confirma que string.c se tornou um bang.ce strangle.c agora é bangle.c.

Use renomear Comando com Traduções

O renomear comando executa todas as ações em nomes de arquivos conhecidas como traduções. Aqui está um exemplo de uma tradução que força um conjunto de nomes de arquivo em maiúsculas.

No renomear comando fornecido abaixo, observe que não estamos usando um

rename 's/^parameter/value/' *.c
para começar a expressão do meio, estamos usando
ls *param*.c
. Isso explica que o comando não pode realizar uma substituição; estamos realizando uma tradução.

O termo

ls value*.c
é uma expressão Perl. Isso significa que todos os caracteres minúsculos na sequência de a a z. Mas, o termo
ls str*.c
representa todas as letras maiúsculas na sequência de A a Z.

A expressão do meio neste comando pode ser parafraseada como se qualquer uma das letras minúsculas de a a z fosse encontrada no nome do arquivo. Ele os substitui usando os caracteres correspondentes da ordem dos caracteres maiúsculos de A a Z.

Se você deseja forçar os nomes de todos os arquivos .prg a maiúsculas, basta usar este comando:

renomear ‘y / a-z / A-Z /’ * .prg

rename 's/(stri|stra)ng/bang/' *.c

O comando

ls ban*.c
nos mostre que todos os .prg os arquivos de extensão agora estão em maiúsculas. Além disso, para ser estritamente preciso, eles não são .prg mais arquivos. Bem, eles são arquivos .PRG. Certifique-se de que o Linux diferencia maiúsculas de minúsculas.

Também podemos reverter esse último comando após retornar à posição do

ls *.PRG
e termos A-Z na expressão do meio.

renomear ‘y / A-Z / a-z /’ * .PRG

ls * .prg

Você não pode aprender Perl em cinco minutos

Conhecer o Perl é um tempo bem gasto. Mas, para começar a usar os recursos de economia de tempo do renomear comando, você não vê ter muito conhecimento de Perl para colher grandes vantagens em poder.

Conclusão:

Aqui está tudo sobre ‘Use rename Command On Linux’. Quais são seus pontos de vista sobre isso? Se você quiser compartilhar qualquer outro método ou dicas sobre o artigo, informe-nos abaixo. Para mais dúvidas e perguntas, deixe-nos saber na seção de comentários abaixo!

Leia também: