Cómo copiar elementos de carpeta en el automatizador de montaje en disco

2

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 usb esté disponible
  2. simplemente copie todo el contenido de (/ Users / x / Documents / myfolder) a la carpeta usb como (/ Volumes / BOSS / myfolder)
  3. elimina los contenidos copiados de mi carpeta

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

    
pregunta user3641241 15.09.2014 - 17:12

1 respuesta

1

Una forma de hacer esto es usar Automator:

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

Probablemente quieras raspar la salida de system_profiler SPUSBDataType para asegurarte de que no estás jugando con DMGs.

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

  

Puedes usar launchd para ese propósito. Launchd se puede configurar   para iniciar automáticamente un programa cuando se modifica una ruta de archivo.

     

Por ejemplo, la siguiente configuración de launchd ejecutará el programa    /usr/bin/logger cuando la carpeta de escritorio de mi cuenta de usuario es   modificado:

<?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 la configuración, guárdelo en la carpeta LaunchAgents en   su carpeta de la biblioteca como "logger.plist".

     

Desde el shell puedes usar el comando launchctl para activar   el logger.plist ejecutando:

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

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

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

El archivo de configuración anterior utiliza la opción WatchPaths .   Alternativamente, también puede usar la opción QueueDirectories . Ver el    launchd página de manual para obtener más información.

    
respondido por el webmarc 15.09.2014 - 19:55

Lea otras preguntas en las etiquetas