Finder: Dateien eines bestimmten Namensmusters automatisch verstecken

T

thulium

Aktives Mitglied
Thread Starter
Dabei seit
12.11.2011
Beiträge
3.657
Reaktionspunkte
390
Moin.

Man kann einzelne Dateien durch Voranstellen eines "." im Namen verstecken oder ihnen das Attribut "versteckt" zuweisen durch:
chflags hidden /PFAD-ZUR-DATEI-ODER-ZUM-ORDNER

Ich habe nun, bedingt durch einen Editor, diverse "Verwaltungsordner" mit dem Namen "_notes".
Solche Ordner kommen immer wieder neu dazu, sobald man neue Inhaltsordner anlegt.

Ihr Anblick stört.

Meine Frage: Gibt es einen Weg Dateien/Ordner automatisch zu verstecken, wenn sie ein spezfisches Namensmuster aufweisen?

Danke.
 
Ja, kann man automatisieren mit AppleScript.
 
Falls eine der Mitleserinnen oder einer der Mitleser so ein Skript schreiben kann und Lust hätte es hier zu veröffentlichen: ich würde mich sehr freuen.
 
-error-128-
 
Zuletzt bearbeitet:
Herzlichen Dank :) Da das Skript nicht einmalig aufgerufen werden soll - dann würde es ja neu hinzugekommene Ordner nicht erfassen: wie bindet man es bitte ein, damit es "dynamisch" wirkt?

Man könnte seine Wirkung vielleicht auf auf einen spezifischen Hauptordner (und all seine Unterordner) beschränken:
zum Beispiel auf "~/foo"
 
Mit Hazel kannst Du Ordner überwachen und zum Beispiel Neuzugängen in diesem überwachten Ordner automatisch ein AppleScript laufen lassen
 
Herzlichen Dank :) Da das Skript nicht einmalig aufgerufen werden soll - dann würde es ja neu hinzugekommene Ordner nicht erfassen: wie bindet man es bitte ein, damit es "dynamisch" wirkt?
..."
Das Script wird nicht einmalig aufgerufen, wenn man es richtig abspeichert und laufen lässt.
Code:
on idle
   tell application "Finder"
       set a to entire contents of folder "path:to:the:notes:folder:"
       try
           repeat with x in a
               if name of x contains "_notes" then do shell script "chflags hidden " & POSIX path of (x as string)
           end repeat
       end try
   end tell
   return 300
end idle

PS: Man könnte auch launchd dazu veranlassen einen bestimmten Ordner auf Änderungen zu überwachen und tritt der Fall ein: start Script. (ohne idle, ohne return)
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: mausfang und dg2rbf
Besser (schneller)
Code:
on idle
   try
       repeat with x in paragraphs of (do shell script "find /path/to/the/notes/folder -name '*_notes*'")
           do shell script "chflags hidden " & x
       end repeat
   on error erstrg
       display alert erstrg as critical
   end try
   return 300
end idle
PS: Man könnte auch launchd dazu veranlassen im Intervall von 5 min das Skript laufen zu lassen. (ohne idle, ohne return)
 
Zuletzt bearbeitet:
@Atalantia

Vielen Dank schonmal :) Ich brauche noch ein paar Tage, bis ich zum Ausprobieren komme. Bzw. zum Recherchieren, wie man das Skript richtig speichert und laufen lässt.
 
Kann man das Anzeigen nicht irgendwo im Finder abstellen?

Welches Filesystem benutzt Du? Auf manchen Filesystemen legt MacOS solche Dateien an weil dem FS gewisse Festures fehlen.
 
Ich verwende APFS.

Die Ordner, um die es geht, werden, wie oben erwähnt, nicht von macOS erzeugt, sondern von einem HTML-Editor.
 
Versuchs mal so:
du speicherst das folgende launchd pref als hideNote.plist ab. (unformatiert, reiner text) und legst es in: ~/Library/LaunchAgents an.
Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>HideNotes</string>
    <key>ProgramArguments</key>
    <array>
        <string>osascript</string>
        <string>/path/to/the/HideNotes.scpt</string>
    </array>
    <key>QueueDirectories</key>
    <array>
        <string>/path/to/the/notes/folder</string>
    </array>
    <key>StartOnMount</key>
    <true/>
</dict>
</plist>
<string>/path/to/the/HideNotes.scpt</string> und <string>/path/to/the/notes/folder</string> musst Du ersetzen.
Das Skript in *8 speicherst Du als HideNotes.scpt ab und löschst dort beide idle Zeilen und die return Zeile und schreibst den richtigen Pfad zu Deinem _Notes Folder.
Wenn die beiden Pfade im plist richtig eingetragen sind sollte es nach der nächsten User Anmeldung funktionieren.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: mausfang
Update für #8:
Code:
on idle
   try
       repeat with x in paragraphs of (do shell script "find ~/path/to/the/notes/folder -name '*_notes*'")
           do shell script "chflags hidden " & quoted form of x
       end repeat
   on error erstrg
       display alert erstrg as critical
   end try
   return 300
end idle


Wenn das Ergebnis ein Ordner (directory) sein muss, kann man die Suche folgendermassen einschränken:
Code:
       repeat with x in paragraphs of (do shell script "find ~/path/to/the/notes/folder -name '*_notes*' -type d")
('-type f' wären nur Files)
 
Zuletzt bearbeitet:
Zurück
Oben Unten