quiero copiar automáticamente los elementos de una carpeta específica cuando se inserta un usb en un momento dado. Lógica del programa:
¿Qué software o scripts podrían hacer esto?
Una forma de hacer esto es usar Automator:
Probablemente querrá raspar la salida de system_profiler SPUSBDataType
para asegurarse de que no está jugando con los DMG.
Oooh, opción 2 del desbordamiento de pila (copiar/pegar como una cita en bloque a continuación):
Puede usar launchd para ese propósito. Launchd se puede configurar para iniciar automáticamente un programa cuando se modifica la ruta de un archivo.
Por ejemplo, la siguiente lista de configuración de launchd iniciará el programa
/usr/bin/logger
cuando se modifique la carpeta del escritorio de mi cuenta de usuario:<?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 Biblioteca como "logger.plist".
Desde el shell, puede usar el comando
launchctl
para activar logger.plist ejecutando:$ launchctl load ~/Library/LaunchAgents/logger.plist
La carpeta del escritorio ahora está siendo monitoreada. Cada vez que se cambie, debería ver una salida en system.log (use Console.app). Para desactivar logger.plist, ejecute:
$ launchctl unload ~/Library/LaunchAgents/logger.plist
El archivo de configuración anterior usa la
WatchPaths
opción. Alternativamente, también puede utilizar laQueueDirectories
opción. Consulte la página man de launchd para obtener más información.
bmike
usuario3641241