Creando una carpeta comprimida HFS + automatizada -- macos campo con applescript campo con automator campo con hfs+ campo con compression camp apple Relacionados El problema

Creating an automated HFS+ compressed folder


17
vote

problema

Español

Me gustaría configurar una forma automatizada para archivar archivos en OS X Lion. Al archivar, me refiero a usar la función de compresión HFS + en una carpeta específica y hacer cada archivo que me muevo a esta carpeta se comprime automáticamente. Estoy pensando en usar esto para archivar archivos grandes que no uso a menudo, pero sin tener que crear manualmente archivos comprimidos y tener que extraerlos en caso de que los necesite.

Me encontré con la herramienta AFSCTOTOL ( brew install afsctool ), que puede , a través de la línea de comandos, aplique HFS + compresión a una carpeta y todos los archivos. Pero creo que no activa la compresión de futuros archivos movidos a la carpeta.

Mover archivos manualmente y ejecutar una instrucción de línea de comandos repetidamente es inconveniente. Por lo tanto, supongo que necesitaría usar AUTOMADOR / AppleScript para ejecutar esto en dos pasos:

  1. Cree un script que permita mover cualquier archivo a una carpeta específica. Idealmente, una opción llamada Archive accesible a través de clic con el botón derecho en el archivo.
  2. Ejecutar una instrucción de línea de comandos afsctool -c <folder> , para activar la compresión en todos los archivos nuevos simplemente mudados a la carpeta.

No tengo experiencia con AUTOMADER O APPLESCRIP, por lo que me gustaría saber dónde comenzar, especialmente con respecto a cómo agregar acciones al buscador y cómo ejecutar una herramienta de línea de comandos desde un script.


Actualizaciones

Guía @Kopischke funciona bien. El script en sí, hice basado en la respuesta por @mark, pero usando afsctool -c <folder> , en lugar de ditto . Aquí está el guión: Se debe poner en ~/Library/Scripts/Folder Action Scripts

  ABCDEFGHIJKLMNABCDEFGHIJKLMN5   

Dado que AFSCTOOL AT MOBILEME ya no está disponible, hay DIIMDEEP / AFSCTOT en GitHub, actualmente 1.6. 4.

también AFSCOTOL en MacPorts donde están conscientes del tema de MobileMe, pero tal vez desconoce la fuente en GitHub.

Original en ingles

I would like to set up an automated way for archiving files in OS X Lion. By archiving I mean using HFS+ compression feature on a specific folder, and make every file that I move into this folder automatically compressed. I'm thinking of using this to archive large files that I don't use often, but without having to manually create compressed archives and having to extract them in case I need them.

I came across the tool afsctool (brew install afsctool), which can, via command-line, apply HFS+ compression to a folder and all files in it. But I believe it does not activates compression of future files moved to the folder.

Moving files manually and running a command line instruction repeatedly is inconvenient. Therefore I'm guessing I would need to used automator/AppleScript to execute this in two steps:

  1. Create a script that allows moving any file to a specific folder. Ideally an option named Archive accessible via right-click on the file.
  2. Run a command line instruction afsctool -c <folder>, to activate compression on all new files just moved to the folder.

I have no experience using automator or AppleScript, so I would like to know where to start, especially regarding how to add actions to Finder, and how to run a command line tool from a script.


Updates

@kopischke guide works well. The script itself, I made based on the answer by @mark, but using afsctool -c <folder>, instead of ditto. Here's the script: It should be put in ~/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 

Since afsctool at MobileMe is no longer available, there's diimdeep/afsctool at GitHub, currently 1.6.4.

Also afsctool in MacPorts where they're aware of the MobileMe issue but maybe unaware of the source at GitHub.

              
 
 

Lista de respuestas

6
 
vote
vote
La mejor respuesta
 

Hay dos partes a la respuesta a su pregunta.

  1. Cómo agregar un elemento del menú contextual del buscador a los archivos "Archivo": Esto es fácil de lograr al crear un servicio de automatizador (Mac OS X Automation tiene Una buena resumen de lo que los servicios de automatorios introducidos en OS X 10.6 pueden hacer): < / p>

    • Lanzamiento automático, elija "Servicio" cuando se le solicite el tipo de flujo de trabajo que desea crear.
    • Elija "archivos o carpetas" en el "Servicio recibe" desplegable (traducciones aproximadas, estoy en un sistema alemán). Opcionalmente, coloque "en" desplegable para "Finder".
    • Agregar una acción "Obtener elementos del buscador seleccionado".
    • Agregue las acciones de "Mover Finder" a continuación y configúrelo en su carpeta de destino.
    • Guarde su servicio en la ubicación predeterminada ( ABCDEFGHIJKLMNABCDEFGHIJKLMN0 ) como "Archivo".

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

  2. Cómo automatizar HFS + Compresión de archivos agregados a su carpeta de destino: Hay varias formas de lograrlo. Por supuesto, podría agregar ese paso a su servicio de archivo. La desventaja de este enfoque es que no se aplicará ninguna compresión si se agregan archivos o carpetas a la carpeta fuera del servicio, por supuesto. Un enfoque mejor sería que todo en la carpeta se comprime automáticamente, sin confianza en el vector de entrada o la interacción del usuario.

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

    • La forma de lanzar una shell Utility en AppleScript es la ABCDEFGHIJKLMNABCDEFGHIJKLMN1 Comando - Consulte la documentación vinculada;
    • La forma incorporada de aprovechar los eventos del sistema de archivos en un AppleScript es usar las acciones de carpeta , que llaman Applerescripts en los cambios en una carpeta vigilada. ¿Qué eventos reacciona en el script se definen por el script en sí, a través de los manipuladores que proporciona (por ejemplo, el script en la respuesta de Mark < / a> tiene un manejador para adding folder items - lo que significa que reacciona a los archivos recién agregados; consulte la Guía de idioma AppleScript para la referencia completa ). La configuración de las acciones de la carpeta se encuentra en el menú Servicios de carpetas en el buscador (también en el menú contextual).
    • Una alternativa turbo de alternativa a la carpeta es paul kim's hazel (software comercial), que agrega el procesamiento basado en reglas y una gran cantidad de criterios para el manejo de eventos de sistema de archivos que van más allá de lo que puede lograr con las acciones de carpeta simples, es posible que desee investigar Hazel si planea hacer más o más cosas complejas a lo largo de la Líneas de lo que estás planeando ahora.

    Una alternativa a todo el enfoque de scripting está usando los grupos de Letenitesoft - otro software comercial , eso no hace nada más que aplique automáticamente (y vuelva a aplicar, donde sea necesario) HFS + compresión al contenido de las carpetas vigiladas.

 

There are two parts to the answer to your question.

  1. How to add a Finder context menu item to xe2x80x9cArchivexe2x80x9d files: this is easy to achieve by creating an Automator Service (Mac OS X Automation has a good overview of what the Automator services introduced in OS X 10.6 can do):

    • Launch Automator, choose xe2x80x9cServicexe2x80x9d when prompted for the kind of workflow you want to create.
    • Choose xe2x80x9cFiles or Foldersxe2x80x9d in the xe2x80x9cService receivesxe2x80x9d drop down (approximate translations xe2x80x93 Ixe2x80x99m on a German system). Optionally, set xe2x80x9cinxe2x80x9d drop down to xe2x80x9cFinderxe2x80x9d.
    • Add a xe2x80x9cGet Selected Finder Itemsxe2x80x9d action.
    • Add a xe2x80x9cMove Finder Itemsxe2x80x9d actions below that and set it to your target folder.
    • Save your service in the default location (~/Library/Services) as xe2x80x9cArchivexe2x80x9d.

    you now have a new service menu and context menu entry (depending on the number of services active: either on the first menu level, or in the xe2x80x9cServicesxe2x80x9d submenu) called xe2x80x9cArchivexe2x80x9d that will move the selected file or folder to your target folder.

  2. How to automate HFS+ compression of files added to your target folder: there are several ways to achieve that. You could, of course, simply add that step to your archiving service. The disadvantage of this approach is that no compression will be applied if files or folders are ever added to the folder outside the service, of course. A better approach would be to have everything in the folder be compressed automatically, without reliance on the the entry vector or user interaction.

    One way is, as you have discovered, to have a compression utility run every time a file or folder is added to your watched folder:

    • the way to launch a shell utility in AppleScript is the do shell script command xe2x80x93 see the linked documentation;
    • the inbuilt way to leverage filesystem events in an AppleScript is to use Folder Actions, which call AppleScripts on changes in a watched folder. What events the script reacts to are defined by the script itself, through the handlers it provides (for instance, the script in Markxe2x80x99s answer has a handler for adding folder items xe2x80x93 meaning it reacts to newly added files; see the Applescript Language Guide for the full reference). Folder Actions configuration is found in the services menu of folders in Finder (in the context menu, too).
    • a turbocharged alternative to Folder Actions is Paul Kimxe2x80x99s Hazel (commercial software), which adds rule based processing and a plethora of criteria for filesystem event handling that go far beyond what you can achieve with simple Folder Actions xe2x80x93 you might want to investigate Hazel if you plan on doing more or more complex stuff along the lines of what you are planning now.

    An alternative to the whole scripting approach is using LateNiteSoftxe2x80x99s Clusters xe2x80x93 another commercial software, that does nothing but automatically apply (and re-apply, where needed) HFS+ compression to the contents of watched folders.

 
 
     
     
5
 
vote

@williamvoor: El script falla con filepaths que contienen espacios, ya que set the file_name to the POSIX path of this_item no se escapa correctamente. Corrija la línea correspondiente 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, que en el código de AppleScript se escapan para que se entregue correctamente al entorno de la línea de comandos.

meta-topic : a medida que carezca de puntos de reputación, no pude comentar en la posición apropiada (= a la publicación propia de @williamvoor), por lo tanto, lo publico como una respuesta propia y pregunto Para editar el cambio de código en su publicación, y déme un pulgar hacia arriba, para que obtenga suficiente reputación, permitiéndome comentar directamente en el futuro. ¡Gracias!

después de eso se hace i o y el administrador podría eliminar mi publicación.

 

@williamvoor: The script fails with filepaths which contain spaces, as set the file_name to the POSIX path of this_item does not escape properly. Correct the appropriate line of your code to this:

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

Explanation: afcstool's file_name argument is surrounded with quotation marks, which themselves in the AppleScript code are escaped in order to be correctly handed over to the command line environment.

Meta-topic: As I lack reputation points, I could not comment at the appropriate position (= to @williamvoor 's own post), therefore I post it as an own answer, and ask you to edit the code change into your post, and give me a thumbs up, so that I gain enough reputation, enabling me to directly comment in the future. Thanks!

After that is done I or and admin could delete my post.

 
 
3
 
vote

esta hilo da un AppleScript para usar como una acción de carpeta que se comprimirá archivos como 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   
 

This thread gives an applescript to use as a Folder action which will compress files as they are added

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 
 
 
 
 
0
 
vote

clusters

... aprovecha la tecnología de compresión de archivos en león de montaña, león y leopardo de nieve ...

Compresión de la carpeta MORSPACE

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

Preferencia

de esos dos, encuentro a los clústeres más maduros y más fáciles de usar, probablemente un mejor ajuste para esta pregunta.


proceder con precaución

En un caso de borde, se puede producir datos silenciosos con usos de terceros de ApplefsPression. Por lo que puedo decir, esto es un error en el sistema operativo, y puede ocurrir solo donde hay una falta extraordinaria de espacio libre. Voy a alimentar el error a Apple.

 

Clusters

xe2x80xa6xc2xa0 takes advantage of the file compression technology in Mountain Lion, Lion and Snow Leopard xe2x80xa6

MoreSpace Folder Compression

xe2x80xa6xc2xa0HFS+ compression has the best effect on uncompressed file formats like text and data documents, databases and mailboxes. A typical Mail mailbox size can be reduced up to 50%. xe2x80xa6

Preference

Of those two, I find Clusters more mature and easier to use xe2x80x93xc2xa0probably a better fit for this question.


Proceed with caution

In an edge case, silent dataloss may occur with third party uses of AppleFSCompression. From what I can tell this is a bug in the OS, and may occur only where there's an extraordinary lack of free space. I'll feed the bug to Apple.

 
 
 
 

Relacionados problema

16  ¿Qué causa algunas unidades de red usando SMB ya no se conecta a MacOS Catalina?  ( What causes some network drives using smb no longer connect to macos catalina ) 
Ejecutar la versión de lanzamiento de MacOS Catalina Algunas acciones de SMB no se conectarán cuando lo hicieron en MoJave. Noté esto primero después de actua...

7  ¿Qué es /stem/library/coreservices/wifiagent.app?  ( What is system library coreservices wifiagent app ) 
Recientemente, he estado un poco preocupado por el malware, así que he estado examinando mi sistema y buscando aplicaciones / programas fuera de lugar, y este...

1  ¿Cómo reinstalar OS X en un IMAC que solo tiene Ubuntu instalado en él?  ( How to reinstall os x on an imac which only has ubuntu installed on it ) 
Tengo un IMAC de 2011 con solo Ubuntu instalado. No es un IMAC de doble arranque, solo tiene instalado Ubuntu. ¿Cómo vuelvo a Volver a OS X original y elimi...

2  Agregue la opción Cortar archivo / carpeta para hacer clic derecho o al menú contextual  ( Add cut file folder option to right click or context menu ) 
Yo uso Lion en mi MacBook Pro 13 ". Me gustaría agregar un elemento de menú contextual llamado" Mover "o" Cortar "(solo como copia) y cuando voy a la ubicació...

4  Cree URL de preferencias del sistema a archivos y carpetas de privacidad en 10.15 Catalina  ( Create system preferences url to privacy files and folders in 10 15 catalina ) 
En MACOS, puede crear un enlace a la sección de automatización del panel de privacidad en las preferencias del sistema mediante la siguiente URL x-apple.sy...

6  "Texto Ghost" en Terminal, Yosemite + TotalTerminal (Anteriormente Visor)  ( Ghost text in terminal yosemite totalterminal formerly visor ) 
Hay "texto fantasma" en mi terminal (vea la captura de pantalla), y espero que alguien sepan cómo arreglar esto ... < / p> Transmisión de fondo de fondo d...

0  No se pueden arrastrar iconos en Dock [Duplicar]  ( Unable to drag icons in dock ) 
Esta pregunta ya tiene respuestas aquí : Problemas de Finder and Dock en OSX 10.10.1 ...

3  Apertura de una imagen de disco OS X con un agente de lanzamiento mientras la pantalla está durmiendo  ( Opening an os x disk image with a launchd agent while the display is sleeping ) 
He creado un agente abcdefghijklmnabcdefghijklmnabcdefghijklmnabcdefghijklmnbcdefghijklmnbcdefghijklmn0. El archivo launchd Agent's Plist se guardó en ~/L...

1  Algunas teclas de teclado no están trabajando en Iniciar sesión en Yosemite  ( Some keyboard keys are not working on login to yosemite ) 
El problema es que cada vez que inicio mi MacBook Pro 15 "a principios de 2011, algunas de las teclas del teclado (nativas) deje de funcionar. Sin embargo, si...

10  ¿Cómo minimizar todas las ventanas / aplicaciones al muelle?  ( How to minimize all windows applications to the dock ) 
⌥ + ⌘ + m Como se mencionó en múltiples documentos solo parece minimizar la ventana actual (enfocada). Estoy buscando el equivalente "Mostrar escritor...

4  Restauración de la copia de seguridad de la máquina de tiempo realizada en una versión anterior de OS X  ( Restoring time machine backup made on a previous os x version ) 
Mi MacBook Pro, ejecutar OS X LEON (10.7.5) fue robado anoche. Afortunadamente, no tomaron mi unidad externa, donde tengo una máquina de tiempo de respaldo de...

1  MacBook Air (comprado en agosto de 2014) [Duplicar]  ( Macbook air bought in august 2014 ) 
Esta pregunta ya tiene respuestas aquí : ¿Dónde está el archivo de sonido de retroalimentación de ca...

0  Solución de problemas de un MacBook Pro que no está cargando de la alimentación  ( Troubleshooting a macbook pro that is not charging from power ) 
Mi MacBook Pro no está cargando, la luz del cargador no está encendida, y la imagen de la batería indica que no está cargando . La computadora tiene aproxim...

3  Mírame por un problema por correo electrónico  ( Look me up by email problem ) 
¿Alguien tiene algo en la pestaña "Mírate por correo electrónico"? Estoy tratando de entender cómo eliminar esta cosa de "Mírate por correo electrónico". Esta...

6  Cómo obtener artículos de lectura de lectura como enlaces  ( How to get reading list items as links ) 
Solo tengo mil millones de artículos en la lista de lectura de Safari y me gustaría los enlaces a todos ellos. ¿Hay alguna manera de obtener todos los artíc...




© 2021 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos