Renomeando em massa sem precisar instalar comandos adicionais

Publicado por Mauricio Ferrari em 14/09/2020

[ Hits: 572 ]

Blog: https://github.com/MauricioFerrari-NovaTrento

 


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

Gambiarra para Atualizar o Menu de Aplicativos no KDE

Claws Mail - Erro na conexão com imap.google.com: login recusado [Resolvido]

Ctrl+C e Ctrl+V no Terminal Linux

Comando 'cat' Colorido? Conheçam o 'ccat'

Mudando o Destino para Geração de Pacotes dos SlackBuild

Leitura recomendada

Comando seq com saída em hexadecimal

Rotacionando vídeos com o Mencoder

Perseidas - Snort + Suricata + ClamAV + Fail2ban

Alterando a senha com apenas uma linha de comando

Lendo registros formatados de arquivo de texto em bash

  

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 mauricio123 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 mauricio123 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
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts