Ich möchte die Elemente eines bestimmten Ordners automatisch kopieren, wenn ein USB-Stick zu einem bestimmten Zeitpunkt eingesteckt wird. Programmlogik:
Welche Software oder Skripte könnten dies tun?
Eine Möglichkeit, dies zu tun, ist die Verwendung von Automator:
Sie werden wahrscheinlich die Ausgabe von kratzen wollen, system_profiler SPUSBDataType
um sicherzustellen, dass Sie nicht mit DMGs herumspielen.
Oooh, Option 2 vom Stapelüberlauf (kopieren/einfügen als Blockzitat unten):
Zu diesem Zweck können Sie launchd verwenden. Launchd kann so konfiguriert werden, dass automatisch ein Programm gestartet wird, wenn ein Dateipfad geändert wird.
Beispielsweise startet die folgende launchd-Konfigurationsliste das Programm,
/usr/bin/logger
wenn der Desktop-Ordner meines Benutzerkontos geändert wird:<?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>
Um die Konfigurationsliste zu aktivieren, speichern Sie sie im LaunchAgents-Ordner in Ihrem Bibliotheksordner als „logger.plist“.
Von der Shell aus können Sie dann den Befehl verwenden,
launchctl
um die logger.plist zu aktivieren, indem Sie Folgendes ausführen:$ launchctl load ~/Library/LaunchAgents/logger.plist
Der Desktop-Ordner wird jetzt überwacht. Jedes Mal, wenn es geändert wird, sollten Sie eine Ausgabe im system.log sehen (verwenden Sie Console.app). Um die logger.plist zu deaktivieren, führen Sie Folgendes aus:
$ launchctl unload ~/Library/LaunchAgents/logger.plist
Die obige Konfigurationsdatei verwendet die
WatchPaths
Option. Alternativ können Sie auch dieQueueDirectories
Option nutzen. Weitere Informationen finden Sie auf der man-Seite von launchd .
Fahrrad
Benutzer3641241