Renomeando em massa sem precisar instalar comandos adicionais

Publicado por Mauricio Ferrari em 14/09/2020

[ Hits: 1.654 ]

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

Liberando o ctrl+s e o ctrl+q para o VIM

Como Converter uma String em Char Array em C++

Ctrl+C e Ctrl+V no Terminal Linux

Resetando as Configurações do KDE Plasma 5

Incluindo o libmediainfo corretamente em um arquivo CMakeFiles.txt para uso em seus projetos

Leitura recomendada

Problema ao criar scripts com Kommander 1.3 no Slackware Linux?

Trocando letrinhas em segundos (sed)

Exibindo mensagens ao efetuar login

Entrando com argumentos em shell script

if/then/elif/else - Escrevendo de outra maneira 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 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