Una forma de hacerlo es utilizar Automator:
- crear una Acción de Carpeta en /Volúmenes
- activar un Applescript o shell script cuando se monta una nueva unidad
- hacer la copia
- 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.