logo
banner

Como renomear vários arquivos de uma vez usando o terminal

Fisico Turista3 min

Instalando o pacote rename

Como renomear a extensão do arquivo de .js para .ts ou arquivos React de .jsx para .tsx de maneira fácil e rápida?

Fazer isso manualmente é inviável! E, para nós Devs, isso pode ser automatizado.

Se você utiliza Linux ou MacOS. Basta instalar o pacote rename

Instalando o pacote rename

  • MacOS

brew install rename

  • Linux (Ubuntu a outras distros Debian-based)

sudo apt-get install rename

Renomeando extensões de arquivos

Supondo que sua base de código Front End tenha a seguinte estrutura:

. └── src └── componentes └── Button ├── index.js └── styles.js

Acesse a pasta src e execute:

find . -type f -name "*.js" -exec rename 's/\.js$/.tsx/' '{}' \;

Essa ação vai mudar todos os arquivos com extensão .js para .tsx

Mas o arquivo styles deveria ser .ts, não .tsx

Então, logo em seguida execute:

find . -type f -name "styles.tsx" -exec rename 's/\.tsx$/.ts/' '{}' \;

Para todo arquivo styles.tsx essa ação vai renomear apenas a extensão de .tsx para .ts.

Pronto! Tudo funcionou e você já terá sua base de código com extensão em TypeScript.

. └── src └── componentes └── Button ├── index.tsx └── styles.ts

Atenção

Esse comando é executado de maneira recursiva para cada subdiretório a partir da raiz de onde o terminal se encontra, isto é, a partir da pasta no terminal onde está sendo executado o comando. Então tome bastante cuidado e garanta que esteja na pasta correta.

Use o comando pwd para saber se está no diretório correto:

❯ pwd /Users/tgmarinho/Developer/rename/src

Execute o comando no terminal, a partir da pasta src.

Developer/rename/src ❯ find . -type f -name "styled.tsx" -exec rename 's/\.tsx$/.ts/' '{}' \;

Última dica

Ao serem executados, os comandos ficam no histórico do terminal. Para encontrá-los você pode vir aqui neste post novamente ou consultar no seu terminal. Para isso, digite:

history | grep rename

Quando busquei todos os comandos que possuem a palavra rename, esse foi o resultado que apareceu na minha máquina.

❯ history | grep rename 9939 find . -type f -name "*.js" -exec rename 's/\.txt$/.tsx/' '{}' \; 9940 find . -type f -name "*.js" -exec rename 's/\.js$/.tsx/' '{}' \; 9941 brew install rename 9942 find . -type f -name "*.js" -exec rename 's/\.js$/.tsx/' '{}' \; 9943 find . -type f -name "styled.tsx" -exec rename 's/\.tsx$/.ts/' '{}' \;

Links

E aí, o que achou desse post?

Espero que tenha curtido! 💜

O aprendizado é contínuo e sempre haverá um próximo nível! 🚀

Next.JS

Post anterior

Mapas com React usando Leaflet

Proximo post