Respuestas:
Lo que podrías hacer es hacer un pequeño archivo por lotes que usaría RAR , una utilidad de línea de comandos shareware 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 su terminal, simplemente copie rar
y unrar
en tu bin
carpeta.
Para acceder a la bin
Directorio, abre Terminal.app y escribe
open /bin
La versión de Windows de RAR permite "convertir" zip
archivar en rar
Archivo en herramientas, pero la versión mac no parece tener esta característica. La solución consistiría en descomprimir cada uno de los archivos en carpetas separadas y luego en el 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 bien 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 con python;)
Espero eso ayude.
rm -r ${TempDirectory}
, mkdir ${TempDirectory}
y mkdir ${TargetDirectory}
También debe ser doble cita. Probablemente deberías usar algo como mktemp -td
o mkdir /tmp/$(uuidgen)
para crear el directorio temporal. Los archivos en los archivos rar se extraen a $PWD/$TempDirectory
.
Aquí hay un script más simple como el publicado por GabLeRoux. rar
se puede descargar desde desde 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
cd ..
falta en algún lugar :-)
~/Desktop/*.zip
sólo para probar.
( )
o con algo como oldpdw="$PWD"
... cd "$oldpwd"
.