¿Cualquier sugerencia de cómo convertir decenas de zip
archivos de rar
formato? Herramienta de aplicación o línea de comandos son bienvenidos.
Respuestas
¿Demasiados anuncios?Lo que puedes hacer es crear un pequeño archivo de proceso por lotes que haría uso de la RAR, una shareware utilidad de línea de comandos para mac (no he podido encontrar ningún libre rar utilidad de línea de comandos, pero RAR está disponible como versión de prueba).
Instalar rar comando
Para instalar RAR en su terminal, simplemente copie rar
y unrar
en su bin
carpeta.
Para obtener acceso a la bin
directorio, abrir Terminal.aplicación y tipo de
open /bin
La versión de Windows de RAR permite "convertir" zip
archivo rar
archivo en herramientas, pero la versión de mac no parece tener esta característica. La solución sería descomprimir cada uno de los archivos en carpetas separadas y, a continuación, a RAR el contenido de esas carpetas de inmediato.
La Solución
#!/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
Guardar esto en un archivo sin extensión, asegúrese de establecer las buenas rutas de acceso en el primer variables y debería funcionar bien ejecutando en la terminal.aplicación
Conclusión
Bueno, a mí me funcionó.
Nota: este script no es perfecto. Tal vez hay una manera mejor, pero funciona ;) que fue uno de mis primeros secuencia de comandos de shell, probablemente sería mejor con los parámetros, o ir con python ;)
Espero que ayude.
Aquí está un script más simple como la publicada por GabLeRoux. rar
puede ser descargado de http://www.rarlab.com/download.htm.
#!/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