Qualche suggerimento su come convertire decine di zip
di file in formato rar
? App o strumento da riga di comando sono i benvenuti.
Quello che potresti fare è creare un file batch che utilizzi RAR , un comando shareware utility di riga per mac (non ho trovato alcuna utility da riga di comando gratuita, ma RAR è disponibile come versione di prova).
Per installare RAR nel tuo terminale, copia semplicemente rar
e unrar
nella tua cartella bin
.
Per accedere alla directory bin
, apri Terminal.app e digita
open /bin
La versione Windows di RAR consente di "convertire" zip
archivio in rar
archivio in strumenti, ma la versione mac non sembra avere questa caratteristica. La soluzione sarebbe decomprimere ciascun file in cartelle separate e poi nel contenuto RAR di quelle cartelle subito.
#!/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
Salva questo in un file senza estensione, assicurati di impostare i buoni percorsi nelle prime variabili e dovrebbe funzionare correttamente eseguendolo in terminal.app
Bene, ha funzionato per me.
Nota: questo script non è perfetto. Forse c'è un modo migliore, ma funziona;) quello era uno dei miei primi script di shell, probabilmente sarebbe stato meglio con i parametri, o andare con python;)
Spero che ti aiuti.
Leggi altre domande sui tag compression lion