Gibt es eine Möglichkeit (z. B. einen binären Hack in den Finder), ihn daran zu hindern, .DS-Stores auf LOKALEN Volumes zu erstellen?
Ich verwende Leopard, daher funktionieren diese nicht:
Außerdem verlangsamt BlueHarvest meinen Computer.
Meiner Erfahrung nach ist BlueHarvest Klassenbester. Technisch gesehen ist es keine Antwort auf die Frage; Es kann Dateien entfernen, aber nicht verhindern ..DS_Store
Wenn BlueHarvest effektiv ist, aber nicht zu Ihrem Anwendungsfall passt, wird es schwierig, eine akzeptable Antwort auf Ihre Frage zu geben.
Wenn Sie keine akzeptable Lösung eines Drittanbieters haben, müssen Sie mit dem arbeiten, was in Leopard integriert ist …
Indem Sie Ansichten vermeiden, die Sie nicht speichern möchten, können Sie die Erstellung von .DS_Store
Dateien verhindern.
Die meisten Benutzer werden es schwierig finden, sich auf diese Weise zurückzuhalten, aber es ist eine wahre Antwort innerhalb der Grenzen der Frage.
http://diigo.com/0qiwp für eine kommentierte Ansicht von http://lists.apple.com/archives/applescript-users/2006/Jun/msg00180.html , wo Matt Deatherage (ein ehemaliger Ingenieur bei Apple) .DS_Store
und anderes erklärt Arten von Dateien.
Um zu verhindern, dass diese hässlichen .DS_Store-Dateien angezeigt werden, scheint es eine relativ neue Option zu geben, dies sauber zu tun, nicht nur für Netzlaufwerke, wie:
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true
sondern auch für USB-verbundene Volumes:
defaults write com.apple.desktopservices DSDontWriteUSBStores -bool true
In Bezug auf den Titel der OP-Frage ist dies die beste Lösung ohne Hacks, da sie nicht nur das Fehlverhalten des Netzwerks behebt, sondern auch für die meisten angeschlossenen Festplatten gilt. Und das könnte das größte Ärgernis für die meisten Benutzer sein, die Geräte wie USB-Sticks zwischen verschiedenen Umgebungen teilen. Es verwendet nur von Apple bereitgestellte Optionen und beeinträchtigt den normalen Betrieb in keiner Weise.
In Bezug auf die im OP-Body erläuterte konkrete Situation ist dies von begrenztem Wert, da diese USB-Option nur in späteren Versionen von OS X/macOS verfügbar ist. Darüber hinaus löst dies immer noch nicht das Problem der .DS_Store
Erstellung auf internen Festplatten, wo sie ebenfalls mühsam zu handhaben sein können. Obwohl sie an diesem Ort tatsächlich einem Zweck dienen könnten.
Eine umfassendere Lösung für dieses Problem, wenn auch eine hackigere, die auf den meisten Versionen des Mac-Betriebssystems funktioniert, lautet wie folgt: Um dieses böse Verhalten auf allen Festplatten vollständig zu unterdrücken – und mit einem binären Patcher/Code-Injektor wie der Frage nach das OP sehnt sich nach – es gibt DeathToDSStore / mit Quelle .
Beide Optionen gehen davon aus, dass noch jemand den Finder verwendet … Die Verwendung eines anderen Dateimanagers würde dieses Problem ebenfalls lösen. Es gibt zahlreiche Anwärter, den Finder für die Dateiverwaltung unter macOS zu ersetzen. Zwei der Platzhirsche in diesem Bereich sind Pathfinder oder XFile .
Ich habe keine Möglichkeit gefunden, die Erstellung zu verhindern, aber Sie können sie mit einem Skript automatisch löschen:
#!/bin/sh
find ~ -name .DS_Store -exec /bin/rm -f -- {} \;
exit 0
Führen Sie es alle X Minuten über launchd
oder aus cron
. Es dauert fast keine Zeit, um auf meinem mehrere Jahre alten iMac zu laufen. Es wird nur Ihr $HOME (~) durchsuchen, aber dort werden die meisten von ihnen sein. Ändern Sie ~ zu / , wenn Sie sie auf dem gesamten Laufwerk löschen möchten, die Ausführung jedoch viel länger dauert. Passen Sie die Häufigkeit daher entsprechend an.
find ~ -name .DS_Store -delete
. Und vergessen Sie nicht das -name
Flag – ohne es würde der Befehl für alle Dateien in ~
und gelten ./.DS_Store
.Versuchen Sie diesen Befehl im Terminal:
defaults write com.apple.desktopservices DSDontWriteNetworkStores true
Es scheint für mich zu funktionieren.
Ich hatte das gleiche Problem, und Lösungen, um diese lästigen Dateien auf der lokal bereitgestellten Festplatte zu verhindern, funktionierten bei mir nicht.
Am Ende habe ich eine geeignete Lösung gefunden, die darin besteht, diese Dateien regelmäßig nur auf der lokal gemounteten Festplatte zu suchen und zu entfernen. Ich habe einen Cronjob mit folgendem Inhalt hinzugefügt:
9 */1 * * * find -x ~ -path /Users/adietz/Library -prune -o -fstype local -name .DS_Store -print -exec /bin/rm -f -- {} \; >> ~/.cron.log 2>&1
Hier ist, was es bedeutet:
9 */1 * * *
führt den Befehl alle 9 Minuten nach der vollen Stunde aus (also 10:09, 11:09, 12:09, ...)find -x ... -fstype local
(optional) Führen Sie die Suche nur auf dem lokal gemounteten Dateisystem durch und ignorieren Sie alle anderen gemounteten Laufwerke darunter~
~
der zu durchsuchende Ordner (Home-Ordner)-path /Users/user/Library -prune -o
(optional) Ausdruck, um den Library
Ordner NICHT zu durchsuchen (was zu Eingabe-/Ausgabefehlern führen kann).-name .DS_Store
der zu suchende Dateiname-print
(optional) ein gefundenes Vorkommen drucken-exec /bin/rm -f -- {} \;
entfernen Sie die Datei>> ~/.cron.log 2>&1
(optional) Fügt die Ausgabe einer Datei hinzu, damit Sie überprüfen können, ob sie funktioniert und wo die lästigen Dateien entfernt wurdenEDIT: funktioniert anscheinend nicht mehr in neueren macOS-Versionen
Ich habe ein effizienteres Skript erstellt (das kontinuierlich als Daemon ausgeführt werden soll), es führt eine Ausführung von find
am Anfang aus, um bereits vorhandene Dateien zu löschen, und fängt neue Dateien in Echtzeit über fsevents ab. Sie werden also sofort nach ihrer Erstellung zerstört, und der Ressourcenverbrauch ist sehr gering. AFAIK ist dies der beste Weg, sie loszuwerden, ohne SIP zu deaktivieren.
Hier ist es – https://github.com/magicgoose/DS_Store-Kill
schlau
kinokijuf
schlau
Lri
daviesgeek