Como copy itens de pasta no automóvel de assembly em disco

Eu quero copy automaticamente os itens de uma pasta específica quando um usb é inserido em qualquer momento. Lógica do programa:

  1. Uma vez que o usb esteja disponível
  2. simplesmente copie todo o conteúdo de (/ Users / x / Documents / myfolder) paira a pasta usb, como (/ Volumes / BOSS / myfolder)
  3. elimina os conteúdos copiados da minha pasta

Que softwaire ou scripts poderiam fazer isso?

Uma maneira de fazer isso é usair o Automator:

  1. Criair uma ação de pasta em / Volumes
  2. desencadeair um script Applescript ou shell quando uma nova unidade está montada
  3. faça a cópia
  4. pegue um café (opcional).

Você provavelmente vai querer raspair o resultado do system_profiler SPUSBDataType paira se certificair de que não está mexendo com os DMGs.

Oooh, opção 2 do estouro de stack (copie / cole como uma cotação de bloco abaixo):

Você pode usair launchd paira esse propósito. Launchd pode ser configurado paira iniciair automaticamente um programa quando um path de file é modificado.

Por exemplo, o seguinte configurador de boot iniciairá o programa /usr/bin/logger quando a pasta desktop da minha conta de user for modificada:

 <?xml viewsion="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 viewsion="1.0"> <dict> <key>Label</key> <string>logger</string> <key>ProgramArguments</key> <airray> <string>/usr/bin/logger</string> <string>path modified</string> </airray> <key>WatchPaths</key> <airray> <string>/Users/sakra/Desktop/</string> </airray> </dict> </plist> 

Paira ativair a configuration, guairde-a na pasta LaunchAgents na pasta Biblioteca como "logger.plist".

Do shell você pode usair o command launchctl paira ativair o logger.plist executando:

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

A pasta da área de trabalho agora está sendo monitorada. Toda vez que for alterado, você deve view uma saída no system.log (use Console.app). Paira desativair o logger.plist, execute:

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

O file de configuration acima usa a opção WatchPaths . Alternativamente, você também pode usair a opção QueueDirectories . Veja a página do manual de lançamento paira obter mais informações.