Kontextmenüelement zum schnelleren Sperren/Entsperren von Dateien im Finder

Kontextmenüelement zum schnelleren Sperren/Entsperren von Dateien im Finder

Ich kann den Status der Dateisperre („Nur lesen“) im Kontextmenü einer Datei ändern:

Bildbeschreibung hier eingeben

Einen Menüpunkt hierfür gibt es nicht.

Wie kann ich ein Finder-Menüelement (Kontextmenü) erstellen, um diese Markierung schneller festzulegen, zu entfernen oder umzuschalten?

Antwort1

Sie können ein neues Menüelement erstellen, das dies tut, indem Sie einServicedas empfängtDaten und Ordnerals Eingabe injede Anwendungim Automator.

Sie haben zwei Implementierungsoptionen. Wählen Sie eine der beiden Automator-Aktionen aus, mit denen Sie den Service-Workflow erstellen möchten:

  • Shell-Skript ausführen
  • AppleScript ausführen

Der folgende Code implementiert dieUmschaltenBefehl, da dieser der komplexeste ist.

Shell-Skript ausführen

Diese Variante verwendet statzum Lesen der für die Datei gesetzten Flags. Dies sind die gleichen Werte, die normalerweise beim Ausführen von angezeigt werden ls -lO, aber states ist eine sauberere Lösung zum Lesen der Werte. Das gesperrte Flag oder uchghat den Wert 0x2, also prüfen wir danach.

chflagswird verwendet, um den Wert zu ändern, und growlnotify, optionaler Teil vonKnurren, wird verwendet, um Erfolgs- oder Fehlermeldungen anzuzeigen.

Bildbeschreibung hier eingeben

Verwenden Sie den folgenden Bash-Skript-Codeausschnitt als Teil der Aktion „Shell-Skript ausführen“:

for f in "$@"
do
    let "$( stat -f "%f" "$f" ) & 0x2"
    if [ $? -ne 0 ] ; then
        chflags uchg "$f" || /usr/local/bin/growlnotify "Error" -m "Failed to lock $f!"
        /usr/local/bin/growlnotify "Locked File" -m "$f was locked!"
    else
        chflags nouchg "$f" || /usr/local/bin/growlnotify "Error" -m "Failed to unlock $f!"
        /usr/local/bin/growlnotify "Unlocked File" -m "$f was unlocked!"
    fi
done

Konfigurieren der Aktion zum Empfangen von Eingabenals Argumente.

 AppleScript ausführen

Verwenden Sie den folgenden AppleScript-Codeausschnitt als Teil der Aktion „AppleScript ausführen“:

on run {input, parameters}
repeat with f in input
        try
            tell application "Finder" to set locked of f to (not locked of f)
        on error errmsg
            tell application "Finder" to display alert errmsg
        end try
    end repeat
end run

Wenn die Aktion fehlschlägt, zB weil Berechtigungen fehlen, wird pro Datei, die nicht geändert werden konnte, ein Dialog angezeigt.

Bildbeschreibung hier eingeben

verwandte Informationen