Como unir duas coleções de ROMs preservando as versões traduzidas (sem duplicatas)
Publicado por Xerxes em 16/09/2025
[ Hits: 799 ]
Contra (USA).zip da pasta de originais se já tivermos um Contra.zip na nossa pasta de traduções.
Double Dragon (USA).zip, e remove todas as informações extras (como (USA), (Japan), (Rev 1)) e a extensão .zip, resultando em um nome "limpo", como Double Dragon.
Ctrl + Alt + T).
nano:
nano.
PASTA1="/caminho/para/sua/pasta_traduzida"
PASTA2="/caminho/para/sua/pasta_originais"
nano pressionando Ctrl + X, depois Y e, por fim, Enter.
prossiga e tecle Enter para ver sua coleção de ROMs ficar ainda mais completa!
#!/bin/bash
# --- CONFIGURAÇÃO ---
# !!! IMPORTANTE: Altere os caminhos abaixo para os caminhos corretos das suas pastas !!!
PASTA1="/media/xerxes/MMPLUS/Roms/FC" # Pasta de destino (suas ROMs traduzidas)
PASTA2="/home/xerxes/Downloads/tiny-best-set-go-games/Roms/FC" # Pasta de origem (ROMs não traduzidas)
# --------------------
# Verifica se os diretórios existem
if [ ! -d "$PASTA1" ] || [ ! -d "$PASTA2" ]; then
echo "❌ Erro: Um ou ambos os diretórios não foram encontrados. Verifique os caminhos no script."
exit 1
fi
echo "Pasta de ROMs Traduzidas (Destino): $PASTA1"
echo "Pasta de ROMs Originais (Origem): $PASTA2"
echo "-----------------------------------------------------"
echo "🔎 Fase 1: Analisando quais jogos da Pasta 2 podem ser copiados..."
echo "-----------------------------------------------------"
# Array para armazenar a lista de jogos a serem copiados
JOGOS_A_COPIAR=()
# Loop através de cada arquivo .zip na Pasta 2
for JOGO_ORIGEM in "$PASTA2"/*.zip; do
# Pega apenas o nome do arquivo, sem o caminho
NOME_ARQUIVO_ORIGEM=$(basename "$JOGO_ORIGEM")
# Normaliza o nome: remove tudo a partir do primeiro parêntese ou colchete
# e também remove a extensão .zip
NOME_NORMALIZADO=$(echo "$NOME_ARQUIVO_ORIGEM" | sed -E 's/ \(.+\)//g; s/ \[.+\]//g; s/\.zip$//')
# Verifica se um arquivo com o nome normalizado já existe na Pasta 1
EXISTE_NA_PASTA1=$(find "$PASTA1" -maxdepth 1 -type f -name "$NOME_NORMALIZADO*.zip" | head -n 1)
if [ -z "$EXISTE_NA_PASTA1" ]; then
# Se a variável estiver vazia, o jogo não existe na Pasta 1
echo " [+] Adicionar à lista de cópia: '$NOME_ARQUIVO_ORIGEM'"
JOGOS_A_COPIAR+=("$JOGO_ORIGEM")
else
# O jogo já existe, então não fazemos nada
:
fi
done
echo "-----------------------------------------------------"
echo "✨ Análise concluída!"
echo ""
# Verifica se há jogos para copiar
if [ ${#JOGOS_A_COPIAR[@]} -eq 0 ]; then
echo "Nenhum jogo novo para copiar. Sua coleção já está completa!"
exit 0
fi
echo "Serão copiados ${#JOGOS_A_COPIAR[@]} novos jogos para a sua coleção."
echo ""
read -p "Deseja prosseguir com a cópia? (digite 'prossiga' e pressione Enter): " CONFIRMACAO
# Verifica a confirmação do usuário
if [ "$CONFIRMACAO" == "prossiga" ]; then
echo ""
echo "🚀 Iniciando a cópia..."
for JOGO_PARA_COPIAR in "${JOGOS_A_COPIAR[@]}"; do
cp -v "$JOGO_PARA_COPIAR" "$PASTA1/"
done
echo ""
echo "✅ Cópia concluída com sucesso!"
else
echo ""
echo "❌ Operação cancelada pelo usuário. Nenhum arquivo foi copiado."
fi
Abrir PDF nos navegadores Swiftfox e Firefox
Joomla! no GNU/Linux em 4 passos
Resolvendo falta do libkrb5.so no Arch Linux
Instalação do Netdata no Fedora 23
Steam for Linux no Slackware usando SlackBuild de AlienBOB
Jogos da Steam sem texturas ou com texturas pretas/escuras [Resolvido]
Minetest, um Minecraft Open Source
A combinação de WMs com compositores feitos por fora
Audacious, VLC e QMMP - que saudades do XMMS
SUNO OpenSource: Crie um servidor de gerador de música com IA
Instalação Completa e Configuração Básica do Void Linux
A Fundação da Confiança Digital: A Importância Estratégica de uma PKI CA na Segurança de Dados
Migração do KDE Plasma para Cinnamon no Gentoo (com systemd) + Tema Colloid
Como desativar a economia de energia no Gentoo (Systemd, Wi-Fi, USB e SSH)
Tenha opção de emblemas embutido no pcmanfm
Instalador não reconhece SSD Sata. (13)
Erro ao instalar o linux-headers [RESOLVIDO] (2)
O WiFi não reconhece minha rede depois que o processo de suspensão é r... (4)









