Renomeando em massa sem precisar instalar comandos adicionais

Publicado por Mauricio Ferrari em 14/09/2020

[ Hits: 639 ]

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

Kazam 1.4.5 no Slackware Current

Configurando o slackpkg para não apagar os pacotes após atualizações

Melhorando o Auto Completar dos comandos no Terminal

Digitar comandos no terminal em várias linhas

Adicionando e listando as regras criadas na lista de exceções do slackpkg usando egrep e sed

Leitura recomendada

Configurando acesso à VPN no Ubuntu Linux

Sincronizando o relógio da BIOS - SyncTime

Atualizando script id-velox.pl para autenticar no provedor AOL

Backup para fita DDS4

Rotacionando vídeos com o Mencoder

  

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