Renomeando em massa sem precisar instalar comandos adicionais

Publicado por Mauricio Ferrari em 14/09/2020

[ Hits: 1.261 ]

Blog: https://www.youtube.com/@LinuxDicasPro

 


Renomeando em massa sem precisar instalar comandos adicionais



Essa é uma dica simples de como renomear em massa no Linux. Estou ciente do comando "rename", mas para quem não quer instalar nada é possível usar algumas linhas em bash.

Vamos usar esse simples código como exemplo:

#!/bin/bash

for F in `ls $(pwd) | egrep -w '(tbz|tlz|txz)'`; do
	mv "$F" "${F%t?z}tgz" 2> /dev/null
done
 

Vamos explicar o que ele vai fazer. Ele vai listar todos os arquivos do diretório atual que tenham as extensões ".tbz", ".tlz" e ".txz", e vai trocar as extensões para ".tgz". Funciona.

Mas, não precisa ficar criando scripts para isso, um exemplo no próprio terminal:

for F in *; do mv "$F" "${F%.sh} "; done

Nesse outro exemplo, foi usado um comando para tirar a extensão de todos os scripts em shell.

E assim, fica a dica.

Outras dicas deste autor

Pacotes KDE Plasma 5 do Slackware 14.2

JDownloader2 para Baixar Arquivos de Sites de Upload

Troque o Basename por Expansão de Parâmetros

Três Formas Fáceis de usar Super Usuário pelo Terminal no Linux

Erro ao Instalar o "ttf-mscorefonts-installer" no Ubuntu [Resolvido]

Leitura recomendada

Criando texto "hacker" com SED

Utilizando o chmod parar mudar permissões em arquivos

Alternar o mouse/touchpad entre destro e canhoto no Openbox

Substituir espaços em branco por underlines em nome de arquivos

Execução anônima em xpdf

  

Comentários
[1] Comentário enviado por msoliver em 14/09/2020 - 18:14h

Boa tarde Mauricio, seguem algumas dicas: (para melhorar a sua dica)
"Otimize" o comando:
Altere:
`ls $(pwd) | egrep -w '(tbz|tlz|txz)'`
Por:
${PWD}/*{tbz,tlz,txz}
Obs: Além de desnecessário, o "egrep" esta obsoleto"
=> man egrep|sed -n '/^ \+In addition/,+1p'
E:
mv ./"$F" "${F%t?z}tgz" 2> $NL #Acusa erro, devido ao './', $NL ???
Por:
mv ${F} "${F/.*/.tgz}" 2> /dev/null

for F in ${PWD}/*{tbz,tlz,txz}; do
mv ./"$F" "${F%t?z}tgz" 2> /dev/null
done
______________________________________________________________________

Att.: Marcelo Oliver
______________________________________________________________________

[2] Comentário enviado por maurixnovatrento em 14/09/2020 - 20:03h


Valeu a dica. Vou otimizar no meu script. A dica fica como está, só tirei o ./ pra não dar problemas.

___________________________________________________________
[code]Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento [/code]

[3] Comentário enviado por maurixnovatrento em 14/09/2020 - 20:04h


Ainda não estou treinado em expressões regulares.

___________________________________________________________
[code]Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento [/code]



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts