Remove .DS_Store files from your Linux server

I run my fileserver off a Linux box using Samba to provide SMB shares to the various clients. While this works well even for the iBook, this particular machine has the nasty habit of creating .DS_Store files all over the place. Today I finally got sufficiently annoyed to look for a solution. What I came up with is the following shell script for the Linux box:

#!/bin/bash
cd $1
find ./ -name “.DS_Store” -print0 | xargs -0 -n1 rm -f

Using a shell script not only allows me to call it from a cron job but also gives me a way to manually clean a directory of my choice whenever I feel like it.

Incoming search terms:

6 thoughts on “Remove .DS_Store files from your Linux server

  1. Ingo Schaefer

    Hallo Stefan,

    wie waere es mit der Option “veto files” in der smb.conf?

    veto files = /.DS_Store/

    sollte es tun. Dann kannst Du gleich verhindern, dass die Dateien angelegt werden.

    und
    delete veto files = yes

    sorgt dafuer, dass sie automatisch geloescht werden, wenn er welche findet. (handle with care)

    man smb.conf

    Gruss,
    Ingo

  2. Stefan Rubner

    Hast du das schon einmal ausprobiert? Das letzte Mal als ich es probiert habe hat mein Mac ziemlich gemeckert von wegen er könne irgendwelche Daten nicht anlegen. Aber vielleicht hat das der 10.3.6 Update ja behoben, ware glatt mal wieder einen Test wert.

  3. Ingo Schaefer

    Hi Stefan,

    noe.

    Aber in den News davon gelesen, dass es gehen soll.

    Da ich hier nix mit samba mache (wenn ich es vermeiden kann) und ausserdem der Mac nicht hier ist, kannst Du wohl besser testen.

    Gruss und viel Erfolg,
    Ingo

  4. Stefan Rubner

    So, jetzt habe ich das mal ausprobiert. Leider funktioniert das Verfahren nur für die .DS_Store-Dateien aber nicht für die ._<echter dateiname>-Files, die von Mac OS X ebenfalls angelegt werden. Sperrt man die auch per Veto-Eintrag, dann lassen sich die Original-Dateien nicht mehr speichern.

  5. Andreas

    Und falls Du Deine Scripting-Qualitäten noch verbessern willst, dann probier mal
    find . -name “.DS_Store” -exec rm -f {} \;

  6. Stefan Rubner

    Wozu ;) OS X legt ja mittlerweile auf Wunsch keine .DS_Store Dateien auf Netzlaufwerken mehr an. Ansonsten: Ja, deine Version ist kürzer. Aber ich hab’s mittlerweile aufgegeben, bei jedem Befehl nachzusehen, OB und wenn ja WIE man über diesen ein Kommando ausführen kann. Xargs frisst alles was kommt. Das reicht mir.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>