Zum Inhalt springen

~/CodeBlog.at

.DS_Store-Dateien: verhindern, löschen und aus Git fernhalten

·3 Min. Lesezeit

Veröffentlicht
Überarbeitet

Was ist neu: Neu aufgebaut: Wirkung von DSDontWriteNetworkStores korrigiert (nur Netzlaufwerke), gezieltes Löschen statt sudo find /, Git und Deployment ergänzt.

Kurz & knapp

.DS_Store-Dateien speichert der Finder für Ansichtseinstellungen – harmlos, aber lästig. Auf Netzlaufwerken verhindert defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true neue Dateien, gelöscht werden sie gezielt mit find . -name '.DS_Store' -type f -delete. Aus Git hältst du sie mit einer globalen Ignore-Datei unter ~/.config/git/ignore fern.

Getestet mit: macOS 27, Git

Inhalt
  1. Was ist eine .DS_Store-Datei?
  2. Erstellung verhindern
  3. Auf Netzlaufwerken (offiziell)
  4. Auf USB-Laufwerken (inoffiziell)
  5. Gezielt löschen
  6. Aus Git fernhalten
  7. Beim Deployment ausschließen

Keiner* braucht sie, trotzdem sind sie überall: .DS_Store-Dateien. (*Fast keiner – der Finder schon.) Sie tauchen in jedem Ordner auf, den du mit dem Finder öffnest, auf USB-Sticks, Netzlaufwerken, in ZIP-Archiven und – besonders ärgerlich – in Git-Repositories und auf Webservern.

Was ist eine .DS_Store-Datei?

„DS“ steht für Desktop Services. Der Finder speichert darin die Ansichtseinstellungen eines Ordners: Darstellung (Symbole, Liste, Spalten), Sortierung, Symbolpositionen, Fenstergröße und Ähnliches. Die Datei ist harmlos und enthält keine Inhalte deiner Dateien. Weil ihr Name mit einem Punkt beginnt, ist sie normalerweise unsichtbar – siehe Versteckte Dateien am Mac anzeigen.

Erstellung verhindern

Auf Netzlaufwerken (offiziell)

Apple dokumentiert eine Einstellung, mit der der Finder auf SMB-Netzlaufwerken keine .DS_Store-Dateien mehr anlegt – ursprünglich gedacht, um das Öffnen großer Netzwerkordner zu beschleunigen:

defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true

Danach abmelden und wieder anmelden. Rückgängig machst du das mit -bool false.

Auf USB-Laufwerken (inoffiziell)

Für USB-Sticks, SD-Karten und externe Laufwerke kursiert ein entsprechender Schlüssel, den Apple allerdings nicht offiziell dokumentiert:

defaults write com.apple.desktopservices DSDontWriteUSBStores -bool true

Auch hier ist ein Ab- und Anmelden nötig. Ob er in jeder macOS-Version zuverlässig wirkt, ist nicht garantiert – im Zweifel hilft das Löschen vor dem Weitergeben des Laufwerks.

Gezielt löschen

Lösche .DS_Store-Dateien immer gezielt in einem Ordner, nicht im ganzen System. Erst anschauen, was gefunden wird:

cd ~/Projects/mein-projekt
find . -name '.DS_Store' -type f -print

Passt die Liste, dann löschen:

find . -name '.DS_Store' -type f -delete

Derselbe Befehl funktioniert auch auf Webservern ohne sudo, z. B. per SSH bei All-Inkl.

Aus Git fernhalten

Am wichtigsten für Entwickler: .DS_Store gehört in kein Repository. Statt die Datei in jedem Projekt in die .gitignore zu schreiben, ignorierst du sie einmal global für alle Repositories.

Git liest dafür standardmäßig die Datei ~/.config/git/ignore – ganz ohne zusätzliche Konfiguration:

mkdir -p ~/.config/git
echo ".DS_Store" >> ~/.config/git/ignore

Wurden .DS_Store-Dateien schon eingecheckt, nimmst du sie aus dem Index – die Dateien auf der Festplatte bleiben erhalten:

find . -name .DS_Store -print0 | xargs -0 git rm --cached --ignore-unmatch
git commit -m "[TASK] remove .DS_Store files"

Zusätzlich lohnt sich .DS_Store in der .gitignore des Projekts, damit auch Teammitglieder ohne globale Einstellung geschützt sind.

Beim Deployment ausschließen

Wer per rsync deployt, schließt die Dateien direkt aus:

rsync -avz --delete --exclude='.DS_Store' dist/ user@server:/pfad/

Häufige Fragen

Was steht in einer .DS_Store-Datei?

Der Finder speichert darin die Ansichtseinstellungen eines Ordners, z. B. Darstellung, Sortierung, Symbolpositionen oder Fenstergröße. Inhalte deiner Dateien stehen dort nicht.

Kann ich .DS_Store-Dateien gefahrlos löschen?

Ja. Es gehen nur die Ansichtseinstellungen des jeweiligen Ordners verloren. Der Finder legt die Datei beim nächsten Öffnen des Ordners neu an.

Kann ich .DS_Store auf der internen SSD des Mac verhindern?

Nein, dafür gibt es keine Einstellung. Möglich ist das nur für Netzlaufwerke (offiziell) und – inoffiziell – für USB-Laufwerke.

Wie entferne ich .DS_Store aus einem Git-Repository?

Mit git rm --cached aus dem Index nehmen, z. B. find . -name .DS_Store -print0 | xargs -0 git rm --cached --ignore-unmatch, dann committen und .DS_Store in die globale oder projektweite Ignore-Datei aufnehmen.

Quellen & weiterführende Links

  1. SMB-Browsingverhalten in macOS anpassen (öffnet in neuem Tab) – Apple Support
  2. git-config – core.excludesFile (öffnet in neuem Tab) – Git Dokumentation
  3. gitignore (öffnet in neuem Tab) – Git Dokumentation
  4. git-rm (öffnet in neuem Tab) – Git Dokumentation
  5. How to Disable the Creation of .DS_Store Files From a Mac (öffnet in neuem Tab) – TechRepublic

Geschrieben von

Christoph Schwob (öffnet in neuem Tab)

Ich bin Christoph Schwob, halbkreativer Entwickler aus Österreich und arbeite seit über 10 Jahren an und mit TYPO3. Hier sammle ich Lösungen, Code-Snippets und Notizen rund um TYPO3, macOS, Server, Homelab und alles andere.

Suche

Tippe einen Suchbegriff ein.