16 votos

La creación de un fichero automatizado de HFS+ carpeta comprimida

Me gustaría configurar de una forma automatizada para el archivado de archivos en OS X Lion. Por archivado me refiero a usar HFS+ característica de compresión en una carpeta específica, y hacer de cada archivo que me mueve en esta carpeta comprime automáticamente. Estoy pensando en usar este archivo archivos de gran tamaño que yo no uso a menudo, pero sin tener que crear manualmente los archivos comprimidos y tener que extraer de ellos en caso de necesidad.

Me llegó a través de la herramienta de afsctool (brew install afsctool), lo cual puede, a través de la línea de comandos, aplicar HFS+ de compresión a una carpeta y todos los archivos en él. Pero creo que no se activa la compresión de archivos futuros mueven a la carpeta.

Mover manualmente los archivos y ejecutar una línea de comandos la instrucción en repetidas ocasiones es incómodo. Por lo tanto, supongo que tendría que utilizar automator/AppleScript para ejecutar esto en dos pasos:

  1. Crear un script que permite mover un archivo a una carpeta específica. Idealmente una opción nombre de Archivo accesible a través del botón derecho del ratón en el archivo.
  2. Ejecutar una línea de comandos la instrucción afsctool -c <folder>, para activar la compresión en todos los nuevos archivos se acaba de mudar a la carpeta.

Yo no tengo ninguna experiencia en el uso de automator o AppleScript, así que me gustaría saber por dónde empezar, especialmente con respecto a cómo añadir acciones a Finder, y cómo ejecutar una herramienta de línea de comandos desde una secuencia de comandos.


Actualizaciones

@kopischke guía funciona bien. El guión en sí, me hizo sobre la base de la respuesta de @marca, pero el uso de afsctool -c <folder>, en lugar de ditto. Aquí está la secuencia de comandos: Se debería poner 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

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

También afsctool en MacPorts donde se es consciente de la MobileMe problema, pero tal vez inconsciente de la fuente en GitHub.

5voto

Ryan Spears Puntos 1524

Hay dos partes en la respuesta a su pregunta.

  1. Cómo agregar un Buscador contextual elemento de menú "Archivo" archivos: esto es fácil de lograr mediante la creación de un Automator Servicio (Mac OS X de Automatización tiene una buena visión general de lo que el Automator servicios introducidos en OS X 10.6, se puede hacer):

    • Lanzamiento de Automator, seleccione "Servicio" cuando se le pregunte por el tipo de flujo de trabajo que desea crear.
    • Seleccione "Archivos o Carpetas" en el "Servicio recibe el desplegable" (aproximado traducciones – estoy en el sistema alemán). Opcionalmente, establecer "en el desplegable de" a "Finder".
    • Agregar un "Seleccionado Buscador de Artículos" de la acción.
    • Agregar un "Mover Buscador de Artículos" las acciones que a continuación y la puso a su carpeta de destino.
    • Guardar su servicio en la ubicación predeterminada (~/Library/Services) como "Archivo".

    ahora tiene un nuevo servicio de menú y menú contextual de entrada (dependiendo del número de servicios activos: en el primer nivel del menú, o en los "Servicios" del submenú) llamado "Archivo" que moverá a la carpeta o archivo seleccionado a la carpeta de destino.

  2. Cómo automatizar HFS+ compresión de los archivos agregados a la carpeta de destino: hay varias maneras de lograr esto. Usted podría, por supuesto, simplemente añadir que paso a su servicio de archivado. La desventaja de este enfoque es que no hay compresión se aplicará si los archivos o carpetas son cada vez añadido a la carpeta fuera del servicio, por supuesto. Un mejor enfoque sería tener todo en la carpeta comprimida de forma automática, sin necesidad de recurrir al el vector de entrada o de interacción con el usuario.

    Una forma es, como usted ha descubierto, para tener una utilidad de compresión que se ejecute cada vez que un archivo o carpeta se agrega a su carpeta vigilada:

    • la forma de lanzar un shell de utilidad en AppleScript es el do shell script comando – ver los enlaces de la documentación;
    • incorporado el camino para el apalancamiento del sistema de ficheros eventos en un AppleScript es el uso de Acciones de Carpeta, a la que llamamos AppleScripts sobre los cambios en una carpeta vigilada. Lo de los eventos de la secuencia de comandos reacciona a son definidos por el propio script, a través de los controladores que ofrece (por ejemplo, la secuencia de comandos en la Marca de la respuesta tiene un controlador para adding folder items – lo que significa que reacciona a la reciente adición de archivos, consulte la Guía de Lenguaje de Applescript para la referencia completa). Acciones de carpeta de configuración se encuentra en el menú de servicios de carpetas en el Finder (en el menú contextual, también).
    • un motor turbo de alternativa a la Carpeta de Acciones es Paul Kim, Hazel (software comercial), que añade basado en las reglas de procesamiento y una gran cantidad de criterios para el sistema de archivos manejo de eventos, que van mucho más allá de lo que puede lograr con simples Acciones de Carpeta – es posible que desee investigar Hazel si usted planea en hacer más o más cosas complejas a lo largo de las líneas de lo que usted está planeando ahora.

    Una alternativa para el conjunto de secuencias de comandos de enfoque es el uso de LateNiteSoft de Clusters – otro software comercial, que no hace nada pero se aplican automáticamente (y volver a aplicar cuando sea necesario) HFS+ compresión de los contenidos de las carpetas vigiladas.

5voto

Corey Puntos 722

@williamvoor: El script falla con las rutas de los archivos que contienen espacios, como set the file_name to the POSIX path of this_item no se escape correctamente. Corregir la correspondiente línea de su código a este:

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

Explicación: afcstool del file_name argumento está rodeado de comillas, que de por sí en el AppleScript código se escapó con el fin de ser correctamente entregado al entorno de línea de comando.

Meta-tema: Como me falta puntos de reputación, no pude comentar en la posición adecuada (= a @williamvoor 's propio post), por lo tanto, he puesto como una propia respuesta, y pedirle que editar el cambio de código en tu post, y me da un pulgar hacia arriba, de modo que voy a ganar la reputación suficiente, lo que me permite directamente comentario en el futuro. Gracias!

Después de que esté hecho, o y admin puede borrar mi post.

3voto

yoliho Puntos 340

Este hilo da un applescript para su uso como una Carpeta de la acción que se va a comprimir los archivos 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

0voto

Tim Puntos 11

Los clústeres

... toma ventaja de la tecnología de compresión de archivos en Mountain Lion, Snow Leopard y Lion ...

MoreSpace Carpeta De Compresión

... HFS+ compresión tiene el mejor efecto sobre el archivo sin comprimir formatos como texto y documentos de datos, bases de datos y buzones de correo. Un típico buzón de Correo de tamaño puede reducirse hasta en un 50%. ...

Preferencia

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


Proceda con precaución

En un caso extremo, en silencio dataloss puede ocurrir con la tercera parte de los usos de AppleFSCompression. De lo que puedo decir, este es un error en el sistema operativo, y puede ocurrir sólo cuando hay una extraordinaria falta de espacio libre. Voy a alimentar el error de Apple.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by: