2 votos

Cómo copiar elementos de la carpeta en el montaje del disco automator

Quiero copiar automáticamente los elementos de una carpeta específica cuando se inserta un usb en un momento dado. Lógica del programa:

  1. Una vez que el usb está disponible
  2. simplemente copia todo el contenido de (/Users/x/Documents/myfolder) a la carpeta usb como (/Volumes/BOSS/myfolder)
  3. borra el contenido copiado de mi carpeta

¿Qué software o scripts podrían hacer esto?

1voto

webmarc Puntos 999

Una forma de hacerlo es utilizar Automator:

  1. crear una Acción de Carpeta en /Volúmenes
  2. activar un Applescript o shell script cuando se monta una nueva unidad
  3. hacer la copia
  4. tomar un café (opcional).

Probablemente querrá raspar la salida de system_profiler SPUSBDataType para asegurarse de que no se está jugando con los DMG.

Oooh, opción 2 de stack overflow (copiar/pegar como una cita en bloque a continuación):

Puede utilizar lanzamientod para ese fin. Launchd puede ser configurado para que lance automáticamente un programa cuando se modifique la ruta de un archivo.

Por ejemplo, el siguiente launchd config plist lanzará el programa /usr/bin/logger cuando la carpeta del escritorio de mi cuenta de usuario es modificada:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>logger</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/logger</string>
        <string>path modified</string>
    </array>
    <key>WatchPaths</key>
    <array>
        <string>/Users/sakra/Desktop/</string>
    </array>
</dict>
</plist>

Para activar el plist de configuración guárdelo en la carpeta LaunchAgents en su carpeta Library como "logger.plist".

Desde el intérprete de comandos se puede utilizar el comando launchctl para activar el logger.plist ejecutando:

$ launchctl load ~/Library/LaunchAgents/logger.plist

La carpeta del escritorio está siendo monitoreada. Cada vez que se cambie debería ver una salida en el system.log (use Console.app). Para desactivar el logger.plist, ejecute

$ launchctl unload ~/Library/LaunchAgents/logger.plist

El archivo de configuración anterior utiliza el WatchPaths opción. También puede utilizar la opción QueueDirectories opción. Ver la lanzamientod para más información.

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:

X