So kopieren Sie Ordnerelemente auf den Disk Mount Automator

Ich möchte die Elemente eines bestimmten Ordners automatisch kopieren, wenn ein USB-Stick zu einem bestimmten Zeitpunkt eingesteckt wird. Programmlogik:

  1. Sobald USB verfügbar ist
  2. Kopieren Sie einfach den gesamten Inhalt von (/Users/x/Documents/myfolder) in einen USB-Ordner wie (/Volumes/BOSS/myfolder)
  3. löscht kopierte Inhalte aus myfolder

Welche Software oder Skripte könnten dies tun?

Könnten Sie Ihren Körper bearbeiten, um Kriterien aufzulisten? Sie haben dies mit einigen Optionen wie Automator gekennzeichnet, aber es ist nicht klar, ob Sie ein bestimmtes Tool benötigen oder mit einer Lösung zufrieden wären.
Entschuldigung, jede Lösung wäre perfekt.

Antworten (1)

Eine Möglichkeit, dies zu tun, ist die Verwendung von Automator:

  1. Erstellen Sie eine Ordneraktion auf /Volumes
  2. Auslösen eines Applescript- oder Shell-Skripts, wenn ein neues Laufwerk gemountet wird
  3. die Kopie machen
  4. Holen Sie sich einen Kaffee (optional).

Sie werden wahrscheinlich die Ausgabe von kratzen wollen, system_profiler SPUSBDataTypeum 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/loggerwenn 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, launchctlum 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 WatchPathsOption. Alternativ können Sie auch die QueueDirectoriesOption nutzen. Weitere Informationen finden Sie auf der man-Seite von launchd .

Ich habe immer noch ein Problem, was für das Skript speziell mit der gleichen Codelogik codiert wird, danke. Ich bin kein Technik-Zauberer, also je detaillierter, desto besser, danke.