2013-08-14 2 views
2

Я пытаюсь использовать Hazel автоматизировать процесс, в котором я в настоящее время вручную застегиваю завершенную папку проекта с WinZip Mac в формат .zipx, а затем переносит ее в папку архива на моем NAS. Я знаю, что есть встроенная функция архива, но формат .zipx сжимает данные больше, что жизненно важно для размера папок, с которыми я работаю.Команда applescript или Automator для .zipx папки в WinZip Mac

Катушка может запускать Applescript, рабочий процесс Automator и скрипты оболочки, поэтому я надеюсь, что хотя бы один из этих методов будет работать.

У меня уже есть правило, настроенное для перемещения любых файлов .zipx из папки моего проекта в NAS, мне просто нужно знать, есть ли простой способ сценария команды, чтобы заставить WinZip создать файл .zipx, используя имя папки в качестве имени zip-файла (т. е. папка 20130814 - Project 2 станет 20130814 - Project 2.zipx. Триггер изменит цвет папки на зеленый.

Я не смог найти что-то конкретное для WinZip Mac относительно CLI, так что я даже не уверен, если это возможно, но если так это сэкономит мне много повторяющихся дела!

Кто-нибудь есть идеи, как настроить?

+0

В качестве альтернативы вы можете попробовать использовать служебную программу командной строки 7zip. Он должен сжиматься, а также zipx. – Mark

+1

bzip2 также обычно имеет более высокую степень сжатия, чем zip или gzip. Вы можете создать архив bzip2 с 'COPYFILE_DISABLE = tar -jcf directory.tbz directory'. – user495470

+0

Я проверил на своем Mac. Предполагается, что bzip2 предварительно установлен OS X, тогда как 7zip должен быть сторонним аддоном. – Kaydell

ответ

0

Я бы использовал приведенный ниже сценарий. если вы измените переменные наверху в соответствии с вашими потребностями. это будет делать резервное копирование, перенос на NAS (если он поддерживает SCP), а также очистка после этого.

Я также добавил некоторые проверки ошибок в том, что проблема с tar/scp связана с тем, что вы не хотите, чтобы возникла проблема с вашими резервными копиями.

#!/bin/bash 

directory="/Users/$USER" 
archive="/home/backup" 
date=$(date +"%d%m%Y") 
filename="backup" 
NAS="Hostname/IP of NAS" 
backup="path to save on NAS" 


tar -cvzf $archive/$filename-$date.tgz $directory 
if [ $? == 0 ]; then 
    echo "success" 
else 
    echo "error" 
    exit 1 
fi 

#only use the below code if your NAS can use ssh/scp 
scp $archive/$filename-$date.tgz $NAS:/$NAS-backup 
if [ $? == 0 ]; then 
    rm $archive/$filename-$date.tgz 
else 
    echo "error" 
    exit 1 
fi 
Смежные вопросы