Creación de una carpeta comprimida HFS + automatizada

Me gustaría configurar una forma automatizada para archivar files en OS X Lion. Al archivar me refiero a usar la function de compression HFS + en una carpeta específica, y hacer que cada file que mueva a esta carpeta se comprima automáticamente. Estoy pensando en usar esto para archivar files grandes que no uso a menudo, pero sin tener que crear files comprimidos manualmente y tener que extraerlos en caso de que los necesite.

Me encontré con la herramienta afsctool ( brew install afsctool ), que puede, a través de la command-line, aplicar la compression HFS + a una carpeta y todos los files en ella. Pero creo que no activa la compression de los futuros files movidos a la carpeta.

  • Actualización de OS X Mavericks - falla de disco / partición
  • ¿Cómo se puede editar el menu Accent?
  • ¿Cómo puedo reiniciar Finder cuando mantiene "detener" un process de copy detenida?
  • ¿Qué aplicaciones permiten el reflection de AirPlay para Mac?
  • Applescript para recuperar la count y la contraseña mediante secuencias de commands de llavero
  • ¿Cómo puedo agregar firmas a Preview.app en Lion sin usar la camera web?
  • Mover files manualmente y ejecutar una instrucción de command-line repetidamente es inconveniente. Por lo tanto estoy adivinando que tendría que utilizar el automatizador / AppleScript para ejecutar esto en dos pasos:

    1. Cree un script que permita mover cualquier file a una carpeta específica. Idealmente, una opción denominada Archivo accesible mediante el button derecho del ratón sobre el file.
    2. Ejecute una instrucción de command-line afsctool -c <folder> , para activar la compression en todos los files nuevos que se afsctool -c <folder> movido a la carpeta.

    No tengo experiencia utilizando el automatizador o AppleScript, por lo que me gustaría saber por dónde empezar, especialmente sobre cómo agregar acciones a Finder y cómo ejecutar una herramienta de command-line desde un script.


    Actualizaciones

    @kopischke guía funciona bien. El guión en sí, he hecho sobre la base de la respuesta por @mark, pero utilizando afsctool -c <folder> , en lugar de ditto . Aquí está el script: Debe ser puesto en ~/Library/Scripts/Folder Action Scripts

     on adding folder items to this_folder after receiving these_items repeat with i from 1 to number of items in these_items try set this_item to item i of these_items tell application "Finder" set the file_name to the POSIX path of this_item end tell set cmd to "/usr/local/bin/afsctool -c " & file_name do shell script cmd on error the error_message number the error_number display dialog "Error: " & the error_number & ". " & the error_message buttons {"OK"} default button 1 end try end repeat end adding folder items to decir on adding folder items to this_folder after receiving these_items repeat with i from 1 to number of items in these_items try set this_item to item i of these_items tell application "Finder" set the file_name to the POSIX path of this_item end tell set cmd to "/usr/local/bin/afsctool -c " & file_name do shell script cmd on error the error_message number the error_number display dialog "Error: " & the error_number & ". " & the error_message buttons {"OK"} default button 1 end try end repeat end adding folder items to 

    Desde http://web.me.com/brkirch/brkirchs_Software/afsctool/afsctool.html en MobileMe ya no está disponible, hay diimdeep / afsctool en GitHub, actualmente 1.6.4.

    También afsctool en MacPorts donde son conscientes de la cuestión de MobileMe, pero tal vez no saben de la fuente en GitHub.

  • Automatización de clics de Applescript en el browser Google Chrome?
  • Ocultar sólo las extensiones de file .app, pero mostrar el rest
  • Editor de text incorporado en Terminal
  • ¿Cómo puedo encontrar los commands de applescript disponibles para una aplicación en particular?
  • macOS Sierra: el volumen de assembly AppleScript sigue pidiendo acceso
  • Establecer iTerm2 como el manejador de URL ssh: //
  • 4 Solutions collect form web for “Creación de una carpeta comprimida HFS + automatizada”

    Hay dos partes en la respuesta a su pregunta.

    1. Cómo agregar un elemento de menu contextual de Finder a files "Archive": esto es fácil de lograr creando un service Automator (Mac OS X Automation tiene una buena visión general de lo que los services de Automator introducidos en OS X 10.6 pueden hacer):

      • Inicie Automator, elija "Servicio" cuando se le solicite el tipo de flujo de trabajo que desea crear.
      • Elija "Archivos o carpetas" en el menu desplegable "Servicio recibe" (traducciones aproximadas: estoy en un sistema alemán). Opcionalmente, establezca "en" desplegable a "Finder".
      • Agregue una acción "Obtener elementos seleccionados del buscador".
      • Añada una acción "Mover elementos del Finder" debajo de eso y establézcala en su carpeta de destino.
      • Guarde su service en la location pnetworkingeterminada ( ~/Library/Services ) como "Archivo".

      ahora tiene un nuevo menu de service y una input en el menu contextual (dependiendo del número de services activos: en el primer nivel de menu o en el submenu "Servicios") llamado "Archivo" que moverá el file o carpeta seleccionado a su destino carpeta.

    2. Cómo automatizar HFS + compression de files agregados a su carpeta de destino: hay varias maneras de lograr eso. Podría, por supuesto, simplemente añadir ese paso a su service de file. La desventaja de este enfoque es que no se aplicará compression si los files o las carpetas se añaden a la carpeta fuera del service, por supuesto. Un mejor enfoque sería que todo en la carpeta se comprima automáticamente, sin depender del vector de input o la interacción del usuario.

      Una forma es, como has descubierto, tener una utilidad de compression ejecutada cada vez que se agrega un file o una carpeta a tu carpeta vigilada:

      • la forma de iniciar una utilidad de shell en AppleScript es el command do shell script – vea la documentation vinculada;
      • la forma incorporada de aprovechar los events del sistema de ficheros en un AppleScript es utilizar Acciones de carpeta , que llaman a AppleScripts sobre los cambios en una carpeta vigilada. Los events a los que reactjs el script son definidos por el propio script, a través de los manejadores que proporciona (por ejemplo, el script de la respuesta de Mark tiene un controller para adding folder items , es decir, reactjs a los files recién agregados. reference completa ). La configuration de las acciones de la carpeta se encuentra en el menu de services de las carpetas de Finder (también en el menu contextual).
      • una alternativa turboalimentada a las acciones de carpeta es Hazel (software comercial) de Paul Kim , que agrega procesamiento basado en reglas y una plétora de criterios para el event handling events del sistema de files que van mucho más allá de lo que se puede lograr con simples acciones de carpetas. planifique hacer cosas más o más complejas siguiendo las líneas de lo que está planeando ahora.

      Una alternativa a todo el método de secuencias de commands es utilizar los clústeres de LateNiteSoft, otro software comercial que no hace otra cosa que aplicar automáticamente (y volver a aplicar, donde sea necesario) la compression HFS + al contenido de las carpetas vigiladas.

    @williamvoor: La secuencia de commands falla con routes de acceso que contienen espacios, ya que set the file_name to the POSIX path of this_item no se escapa correctamente. Corrija la línea apropiada de su código a esto:

     set cmd to "/Users/sn/bin/bin/afsctool -c \"" & file_name & "\"" 

    Explicación : El argumento file_name de afcstool está rodeado de comillas, las cuales, en el código AppleScript, se escapan para ser entregadas correctamente al entorno de command-line.

    Meta-topic : Como carezco de puntos de reputación, no pude comentar en la position apropiada (= a la propia input de @williamvoor), por lo tanto la publico como una respuesta propia y le pido que edite el cambio de código en su post, y me dan un pulgar hacia arriba, para que yo gano suficiente reputación, lo que me permite comentar directamente en el futuro. ¡Gracias!

    Después de que se hace I oy admin podría eliminar mi post.

    Este hilo da un applescript para usar como una acción de carpeta que comprimirá los files a medida que se agregan

     on adding folder items to thisFolder after receiving theseItems set destinationPath to "/POSIX path/to/destination/folder" repeat with thisItem in theseItems set cmd to "ditto --hfsCompression " & quoted form of POSIX path of thisItem & " " & destinationPath do shell script cmd with administrator privileges end repeat end adding folder items to 

    Clusters

    … se aprovecha de la tecnología de compression de files en Lion, Lion y Snow Leopard …

    Compresión de la carpeta más espacio

    … HFS + compression tiene el mejor efecto en formattings de file sin comprimir como text y documentos de datos, bases de datos y buzones. Un tamaño de buzón de correo típico se puede networkingucir hasta un 50%. …

    Preference

    De esos dos, encuentro Clusters más maduro y fácil de usar – probablemente un mejor ajuste para esta pregunta.


    Proceda con precaución

    En un caso de borde, silencioso dataloss puede ocurrir con terceros usos de AppleFSCompression. Por lo que puedo decir esto es un error en el sistema operativo, y puede ocurrir sólo donde hay una extraordinaria falta de espacio libre. Voy a alimentar el error a Apple.

    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).