Skip to content

Instantly share code, notes, and snippets.

@felipem775
Created May 12, 2025 14:25
Show Gist options
  • Select an option

  • Save felipem775/92f544d450b567657bb7b9e7d5ea0dca to your computer and use it in GitHub Desktop.

Select an option

Save felipem775/92f544d450b567657bb7b9e7d5ea0dca to your computer and use it in GitHub Desktop.
cbr a cbz
#!/bin/bash
# Script para convertir archivos CBR (Comic Book RAR) en CBZ (Comic Book ZIP)
# Uso: ./cbr2cbz.sh archivo.cbr [archivo.cbr ...]
if [ $# -eq 0 ]; then
echo "Error: No se han proporcionado archivos para convertir."
echo "Uso: $0 archivo.cbr [archivo.cbr ...]"
exit 1
fi
# Verificar que los comandos necesarios estén disponibles
for cmd in unrar zip; do
if ! command -v $cmd &> /dev/null; then
echo "Error: El comando '$cmd' no está instalado. Por favor, instálalo primero."
echo "Para instalar: sudo apt-get install $cmd"
exit 1
fi
done
# Procesar cada archivo proporcionado
for cbr_file in "$@"; do
# Verificar que el archivo existe
if [ ! -f "$cbr_file" ]; then
echo "El archivo '$cbr_file' no existe, omitiendo..."
continue
fi
# Verificar que es un archivo CBR (RAR)
mime_type=$(file -b --mime-type "$cbr_file")
if [[ "$mime_type" != "application/vnd.rar" && "$mime_type" != "application/x-rar" && "$mime_type" != "application/octet-stream" ]]; then
echo "'$cbr_file' no parece ser un archivo RAR válido, omitiendo..."
continue
fi
# Obtener la ruta base sin extensión
base_name="${cbr_file%.*}"
# Crear directorio temporal
temp_dir=$(mktemp -d)
echo "Procesando: $cbr_file"
echo "- Extrayendo archivos a directorio temporal..."
# Extraer el CBR al directorio temporal
unrar x -o+ "$cbr_file" "$temp_dir" > /dev/null
if [ $? -ne 0 ]; then
echo "- Error al extraer '$cbr_file'. ¿Es un archivo RAR válido?"
rm -rf "$temp_dir"
continue
fi
# Crear el archivo CBZ
echo "- Creando archivo CBZ..."
# Cambiar al directorio temporal y comprimir todos los archivos
current_dir=$(pwd)
cd "$temp_dir"
zip -r "$current_dir/${base_name}.cbz" . -q
cd "$current_dir"
# Limpiar directorio temporal
rm -rf "$temp_dir"
echo "- Conversión completa: ${base_name}.cbz"
echo ""
done
echo "Proceso finalizado."
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment