¿Alguna sugerencia de cómo convertir decenas de archivos zip
a formato rar
? La aplicación o la herramienta de línea de comandos son bienvenidas.
¿Alguna sugerencia de cómo convertir decenas de archivos zip
a formato rar
? La aplicación o la herramienta de línea de comandos son bienvenidas.
Lo que podrías hacer es crear un pequeño archivo por lotes que usaría RAR , un comando shareware utilidad de línea para mac (no encontré ninguna utilidad de línea de comandos rar gratuita, pero RAR está disponible como versión de prueba).
Para instalar RAR en tu terminal, simplemente copia rar
y unrar
en tu carpeta bin
.
Para obtener acceso al directorio bin
, abra Terminal.app y escriba
open /bin
La versión de Windows de RAR permite "convertir" zip
archive en rar
archive en herramientas, pero la versión mac no parece tener esta característica. La solución sería descomprimir cada uno de los archivos en carpetas separadas y luego enviarlos al contenido RAR de esas carpetas de inmediato.
#!/bin/bash
# shell script that will convert zip files into rar files
# Require RAR for Mac os x to be placed in bin folder
# Working directory, use ~ for home folder shortcut :)
WorkingDirectory=~/test
# Temp directory that will be used for zip files manipulation
# Will prevent loop from raring other folders ;)
TempDirectory="${WorkingDirectory}"/zipToRarTemp
# Target Directory is where you want the rar files to go after the process
TargetDirectory="${WorkingDirectory}"
# Let's create the directories
mkdir "${TempDirectory}"
mkdir "${TargetDirectory}"
# Will loop into WorkingDirectory and unzip each .zip files
for file in "${WorkingDirectory}"/*.zip
do
# Get file name
# See http://stackoverflow.com/questions/965053/extract-filename-and-extension-in-bash
# 1st answer
filename=$(basename "$file")
extension="${filename##*.}"
filename="${filename%.*}"
# Temp folder in the loop
tempFolderToRar="${TempDirectory}"/"${filename}"
# Create folders to rar later
mkdir "${tempFolderToRar}"
# unzip -d folder/extract/to fileToExtract.zip
unzip -d "${TempDirectory}"/"${filename}" "${file}"
# rar all the files in tempFolderToRar into the target
rar a "${TargetDirectory}"/"${filename}".rar "${tempFolderToRar}"
done
# Optionnaly, delete temp directory if different from target
if [ "${TempDirectory}" != "${TargetDirectory}" ]
then
rm -r "${TempDirectory}"
fi
Guarde esto en un archivo sin extensión, asegúrese de establecer las rutas correctas en las primeras variables y debería funcionar correctamente ejecutándolo en terminal.app
Bueno, funcionó para mí.
Nota: este script no es perfecto. Tal vez haya una mejor manera, pero funciona;) esa fue una de mis primeras secuencias de comandos de shell, probablemente sería mejor con los parámetros, o iría con python;)
Espero que ayude.
Aquí hay un script más simple como el publicado por GabLeRoux. rar
se puede descargar desde enlace .
#!/bin/bash
for f in ~/Desktop/*.zip; do
d=/tmp/$(uuidgen)
unzip "$f" -d $d
cd "$d"
rm -rf __MACOSX
~/bin/rar a "${f%zip}rar" *
rm -r "$d"
done
Lea otras preguntas en las etiquetas lion compression