Gibt es eine Möglichkeit zu verhindern, dass diese lästigen .DS_Store-Dateien jemals erstellt werden?


14

Gibt es eine Möglichkeit (z. B. einen binären Hack in Finder) zu verhindern, dass .DS-Stores auf lokalen Volumes erstellt werden?

Ich benutze Leopard, daher funktionieren diese nicht:

Außerdem verlangsamt BlueHarvest meinen Computer.


1
Siehe: Verhindern, dass MacOS. * - und ._ * -Dateien erstellt - Gibt es einen bestimmten Grund, warum Sie diese nicht möchten?
Slhck

@slhck: blueharvest funktioniert, verlangsamt aber meinen Computer. Ich bin auf der Suche nach so etwas wie diese
kinokijuf

Ich habe vergessen, dass TotalFinder nur mit ≥ 10.6 funktioniert, sorry.
Slhck

Diese Frage wäre zu lokalisiert, wenn sie spezifisch für Leopard und früher wäre. In den Antworten kann gegebenenfalls nur die aktuell niedrigste oder höchste unterstützte Version angegeben werden.
Lri

Antworten:


3

Lösungen von Drittanbietern

Nach meiner Erfahrung ist BlueHarvest der Klassenbeste. Technisch 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 für Leopard von wesentlicher Bedeutung ist.

Ohne eine Drittanbieterlösung: Beschränken Sie die Verwendung von Finder

Indem Sie die Ansichten vermeiden, die Sie nicht speichern möchten, können Sie die Erstellung von .DS_StoreDateien verhindern.

Die meisten Benutzer werden es schwierig finden, sich auf diese Weise zurückzuhalten, aber es ist eine echte 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_Storeund andere erklärt Arten von Dateien.


6

Ich habe keine Möglichkeit gefunden, diese 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 launchdoder aus cron. Auf meinem mehrjährigen iMac ist fast keine Zeit zum Laufen. Es wird nur Ihr $ HOME (~) durchsucht, aber dort werden die meisten von ihnen sein. Ändern Sie ~ in /, wenn Sie sie auf dem gesamten Laufwerk löschen möchten, die Ausführung jedoch viel länger dauert. Passen Sie die Frequenz entsprechend an.


1
Sie könnten auch verwenden find ~ -name .DS_Store -delete. Und vergessen Sie nicht die -nameFlagge - ohne sie würde der Befehl für alle Dateien in ~und gelten ./.DS_Store.
Lri

1
Ich weiß, dass ich ein Skript verwenden kann, aber Ihre Antwort beantwortet die Frage nicht.
Kinokijuf

Die Antwort auf die Frage lautet "nein". Es gibt keine Möglichkeit zu verhindern, dass sie erstellt werden (außer bei Netzwerkfreigaben, von denen auch nicht die Rede war). Diese Antwort versucht, das gleiche Endergebnis zu erzielen. Wenn SE eine Antwortkategorie namens "Workaround" hätte, hätte ich sie darunter gesetzt. Es ist sicherlich keine schlechtere Antwort als ein Daemon, der an ein Framework angehängt ist (< asepsis.binaryage.com/> ) und viel sicherer als das Hacken in eine System-Binärdatei, und es läuft auf jeder Version von Mac OS X.
TJ Luoma

Es wird jedoch nicht dasselbe Endergebnis erzielt. Blueharvest ist eine bessere Problemumgehung (dasselbe Endergebnis, abgesehen von der Tatsache, dass auf dem Computer nur ein Schwein läuft). Auch Asepsis ist ein Fahrer IIRC.
Kinokijuf

1
@kinokijuf, lass die berechtigte Einstellung fallen. Wenn Ihnen jemand kostenlose Hilfe anbietet , können Sie diese nicht kritisieren. Es ist fair, einfach einmal zu sagen , dass es nicht das ist, wonach Sie suchen, aber die Verteidigung von TJ Luoma (die Sie leider notwendig gemacht haben) ist mehr als ein Hinweis genug, um Ihre Klappe zu halten. Herrgott.
r_alex_hall

4

Um zu verhindern, dass diese hässlichen .DS_Store-Dateien angezeigt werden, scheint es eine relativ neue Möglichkeit zu geben, dies sauber zu tun, nicht nur für Netzwerklaufwerke wie:

defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true

aber auch für über USB angeschlossene Volumes:

defaults write com.apple.desktopservices DSDontWriteUSBStores -bool true

Bezogen auf den OPs-Fragetitel ist dies die beste Lösung ohne Hacks, da hiermit nicht nur das Netzwerk-Fehlverhalten behoben wird, sondern auch die meisten angeschlossenen Festplatten. Dies ist möglicherweise das größte Ärgernis für die meisten Benutzer, die Geräte wie USB-Sticks zwischen verschiedenen Umgebungen austauschen. Es werden nur die von Apple bereitgestellten Optionen verwendet und der normale Betrieb wird in keiner Weise beeinträchtigt.

Bezogen auf die im OPs-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 wird das Problem der .DS_StoreErstellung auf internen Datenträgern noch immer nicht behoben, da dies auch zu Problemen führen kann. Obwohl sie an diesem Ort tatsächlich einem Zweck dienen könnten.

Eine umfassendere, wenn auch hackigere Lösung für dieses Problem, die auf den meisten Versionen des Mac-Betriebssystems funktioniert, lautet wie folgt: Um dieses unangenehme Verhalten auf allen Festplatten vollständig zu unterbinden - und mit einem Binär-Patcher / Code-Injektor wie dem von das OP sehnt sich nach - es gibt DeathToDSStore / mit Quelle .

Bei beiden Optionen wird davon ausgegangen, dass jeder Finder noch verwendet. Die Verwendung eines anderen Dateimanagers würde dieses Problem ebenfalls lösen. Es gibt zahlreiche Konkurrenten, die Finder für die Dateiverwaltung unter macOS ersetzen. Zwei der Spitzenreiter in diesem Bereich sind Pathfinder oder XFile .


2
+1 für den USBStores-Befehl (ich wusste das nicht!) Sowie DeathToDSStore.
Wowfunhappy

3

Probieren Sie diesen Befehl aus: Standardmäßig schreiben Sie com.apple.desktopservices DSDontWriteNetworkStores true im Terminal. Es scheint für mich zu funktionieren.


4
Es funktioniert nur für das Netzwerk, nicht für lokale Volumes.
Kinokijuf

Du hast Recht. Ich entschuldige mich für meine Verwirrung.

4
Dies ist der einzige wirkliche Fall, in dem ich sehen konnte, dass .DS_Stores ärgerlich sind. Sie sind unter Mac OS standardmäßig ausgeblendet und entscheidend für das Speichern der Ansichtseinstellungen für einzelne Ordner
Alexander - Reinstate Monica

2
Aber ich möchte keine Ansichtseinstellungen speichern.
Kinokijuf

1

Ich habe ein effizienteres Skript erstellt (das als Daemon ausgeführt werden soll), finddas zu Beginn einmal ausgeführt wird, um bereits vorhandene Dateien zu löschen und neue Dateien in Echtzeit über fünf Ereignisse abzufangen. Sie werden also sofort bei ihrer Erstellung gelöscht, und der Ressourcenverbrauch ist sehr gering. AFAIK dies ist der beste Weg, um sie loszuwerden, ohne SIP zu deaktivieren.
Hier ist es - https://github.com/magicgoose/DS_Store-Kill

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.