Renomeando em massa sem precisar instalar comandos adicionais

Publicado por Mauricio Ferrari (LinuxProativo) em 14/09/2020

[ Hits: 1.937 ]

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

 


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

Fortune em português no Slackware Current

Consultando qual o repositório está ativo no slackpkg usando apenas o grep

Usando o Notable no Slackware

deb2appimage - Crie AppImage facilmente

Avidemux QT5 no Ubuntu 20.04

Leitura recomendada

Atualizar Panda antivírus para Linux via script

Como passar parâmetros para um alias no Bash

Lendo registros formatados de arquivo de texto em bash

sed formatando CPF, CNPJ e datas

Quantos comandos digitei nesse terminal?

  

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