Une suggestion sur la manière de convertir des dizaines de zip
vers rar
format ? Une application ou un outil de ligne de commande sont les bienvenus.
Réponses
Trop de publicités?Ce que vous pourriez faire, c'est créer un petit fichier batch qui utiliserait RAR un utilitaire de ligne de commande shareware pour mac (je n'ai pas trouvé d'utilitaire de ligne de commande rar gratuit, mais RAR est disponible en version d'essai).
Installation de la commande rar
Pour installer RAR dans votre terminal, il suffit de copier rar
et unrar
dans votre bin
dossier.
Pour accéder à la bin
ouvrez Terminal.app et tapez
open /bin
La version Windows de RAR permet de "convertir" zip
archives en rar
dans les outils, mais la version mac ne semble pas avoir cette fonctionnalité. La solution consisterait à décompresser chacun des fichiers dans des dossiers distincts, puis de procéder immédiatement au RAR du contenu de ces dossiers.
La solution
#!/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
Sauvegardez ceci dans un fichier sans extension, assurez-vous de définir les bons chemins dans les premières variables et cela devrait fonctionner correctement en l'exécutant dans terminal.app.
Conclusion
Eh bien, cela a fonctionné pour moi.
Note : ce script n'est pas parfait. Il y a peut-être une meilleure façon, mais ça marche ;) c'était l'un de mes premiers script en shell, ce serait probablement mieux avec des paramètres, ou avec Python ;)
J'espère que cela vous aidera.
Voici un script plus simple comme celui posté par GabLeRoux. rar
peut être téléchargé à partir 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