Deaktivieren Sie die Speicherung unsichtbarer Dateien "._" auf meinem cfs- oder smb-Netzwerkspeicher

Ich verwende OS X Mavericks und habe einige Firmenspeicherlaufwerke gemountet (mit smb oder cfs). (smb://benutzername@adresse.pfad.toserver.com/verzeichnis/daten). Wenn ich mit Dateien auf dem Laufwerk arbeite oder Dateien auf das Laufwerk kopiere, werden einige versteckte Dateien erstellt. Die meisten dieser Dateien beginnen mit einem Punkt-Strich ._und dann dem Dateinamen der Originaldatei, wie zum Beispiel:

._test001.png
._test002.png
._test003.png

Und meistens sind auch die berühmten ._.DS_Storeund .DS_Storedabei.

Auf meinem Mac sind diese .Punktelemente unsichtbar, aber meine Windows-Kollegen sehen diese Dateien. Wie kann ich verhindern, dass OS X diese seltsamen unsichtbaren Dateien erstellt?

Auf support.apple.com (und anderen Internetquellen) finden Sie einen 'defaults write', um die Erstellung von .DS_Store-Dateien auf Ihren Netzlaufwerken zu deaktivieren. Aber das funktioniert nicht in Mavericks:

defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true

Im Moment verwende ich diesen Einzeiler, aber rm -rfin diesem Fall fühlt es sich falsch an, einen zu machen.

find . -type f -name "._*" -exec rm "{}" \;

Bearbeiten: Ich möchte die Dateien nicht löschen oder vom Kopieren ausschließen. Ich möchte, dass sie gar nicht erst entstehen.

Bearbeiten: Ich bevorzuge eine "native" OS X-Lösung gegenüber Apps von Drittanbietern.

Bearbeiten: Diese Frage hat zwei Antworten, eine für die ._-Dateien und eine für die .DS_Store-Dateien. Das Kopfgeld wird für belohnt dot_clean, diese native Befehlszeilen-App bereinigt alle ._-Dateien. Leider werden die .DS_Store-Dateien nicht gelöscht, dies kann effektiv mit Asepsis erfolgen. Asepsis speichert .DS_Stores an einem festen Ort und nicht im Ordner selbst.

Ich bin mir nicht sicher, ob diese Vorschläge Ihr Problem lösen werden, also hinterlassen Sie diese in einem Kommentar. 1. Probieren Sie TinkerTool bresink.com/osx/TinkerTool.html aus und verwenden Sie Finder > „Keine versteckten .DS_Store-Dateien über eine Netzwerkverbindung erstellen“. 2. Probieren Sie das Secrets System Preferences Pane secrets.blacktree.com aus und deaktivieren Sie Finder > .DS_Stores in einem Netzwerk verwenden.
@gentlemanhog, ich werde deine Vorschläge ausprobieren. Aber ich bevorzuge eine "native" OS X-Lösung gegenüber Apps von Drittanbietern.
@gentlemanhog, leider funktionieren deine Lösungen nicht in Mavericks.

Antworten (8)

Ich gebe zu, ich hatte nicht bemerkt, dass der defaults writeBefehl in Mavericks nicht mehr funktionierte. Wenn ich jedoch saubere Netzwerkmounts mache, verwende ich anstelle Ihres einen Liners findund rmdies:

dot_clean .

Die Manfile erklärt:

dot_clean -- Merge ._* files with corresponding native files.

Ich verwende das Flag -m nicht, aber Sie finden es möglicherweise in Ihrer Situation hilfreich.

-m      Always delete dot underbar files.

Hier ist eine andere Person, die aktiv versucht, die Erstellung von .DS_Store-Dateien zu verhindern: http://www.aorensoftware.com/blog/2011/12/24/death-to-ds_store/ - sieht so aus, als ob er sie nicht auf Laufwerken haben möchte so sehr er sie nicht im Netz haben will!

Dies ist das richtige Werkzeug für den Job. Leider handelt es sich bei dieser Lösung um eine nachträgliche Montage, die ausgeführt werden muss, nachdem die Montage erfolgt ist. Die Asepsis macht einen besseren Job ( apple.stackexchange.com/a/136558/55028 ), ist aber eine Drittanbieter-App und funktioniert nur mit .DS_Store-Dateien und funktioniert nur mit allen .DS_Store-Dateien auf jedem Mount.

Gerade ausprobiert, und das funktioniert in Mavericks (zumindest zum Deaktivieren von .DS_Store nicht Netzwerkfreigaben):

defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true

Sie müssen nur daran denken, auch den Finder neu zu starten:

killall Finder
Dies funktioniert nicht auf El Capitan, für ein Samba-Laufwerk. .DS_StoreDateien werden noch erstellt
Das .DS_Storesind keine AppleDouble-Dateien, sondern nur "normale" unsichtbare Dateien, die vom Finder erstellt werden. Dass Sie diese .DS_Store-Dateien sehen, ist also kein Hinweis darauf, ob sie DSDontWriteNetworkStoresfunktionieren oder nicht.

Bei den ._Dateien handelt es sich um AppleDouble-Dateien, die zum Speichern von Metadaten wie erweiterten Attributen, ACLs, Datei-Flags und Ressourcenverzweigungen verwendet werden.

Um sie zu löschen, führen Sie Folgendes aus:

find . -name ._\* -delete

Sie können sehen, ob Dateien erweiterte Attribute, ACLs oder Datei-Flags mit haben ls -l@eO. Die ._Dateien werden normalerweise erstellt, weil Dateien erweiterte Attribute haben. Mit können Sie xattr -cerweiterte Attribute oder chmod -NACLs löschen. cp -Xund rsynckopieren Sie Dateien ohne erweiterte Attribute, ACLs, Datei-Flags oder Ressourcenzweige.

Ich möchte die Dateien nicht löschen oder vom Kopieren ausschließen. Ich möchte, dass sie gar nicht erst entstehen.
Wenn Sie den Finder verwenden, können Sie nicht verhindern, dass sie erstellt werden.
@Fyrefly, aber Sie können sie woanders erstellen. Siehe Asepsis, apple.stackexchange.com/a/136558/55028 . Eine „native“ Lösung wäre also ebenfalls möglich

Da Sie das Schreiben von versteckten Dateien auf jedem Mac deaktivieren müssten, der sich mit Ihrer Freigabe verbinden könnte, wäre es eine bessere Option, dies auf der Freigabe und nicht auf den Clients zu stoppen.

Alles, was Sie tun müssen, ist, Ihre Freigabekonfiguration zu bearbeiten (z. B. unter Linux in /etc/samba/smb.conf) und Ihrer Freigabekonfiguration die folgende Option hinzuzufügen:

veto files = /._*/.DS_Store/ 

Jetzt können keine Mac-Clients Dateien mit diesen Mustern in Ihrer Freigabe speichern.

'veto files' verhindert nicht, dass Dateien geschrieben werden, es hindert Benutzer daran , die Dateien zu sehen. Siehe samba.org
Samba hat allerdings die Option „delete veto files = yes“, die diese auch löscht.
Leider werden delete veto files = yesdiese Punktdateien nicht gelöscht, sondern nur sichergestellt, dass Sie einen Ordner löschen können, der Dateien enthält, die durch die veto filesOption ausgeblendet wurden, sodass nicht erreicht wird, wonach das OP gesucht hat (und wonach ich auch vergeblich suche). Pro).

Ich habe das nicht selbst ausprobiert, und mir ist klar, dass das OP native Lösungen bevorzugt, aber trotzdem:

Es gibt eine App namens Asepsis , die die Erstellung dieser Dateien in einen speziellen Ordner umleitet, dh auf eine Weise verhindert, dass sie erscheinen.

Dies ist ein gutes Werkzeug für den Job. Leider ist diese Lösung eine Drittanbieter-App und funktioniert nur mit .DS_Store-Dateien (nicht mit ._-Dateien) und funktioniert nur mit allen .DS_Store-Dateien auf jedem Mount. Dies ist eine gute Lösung, aber nicht native und nicht ._-Dateien und daher kein Kopfgeld. sry.

Keine native Lösung, noch verhindert es das Schreiben dieser Dateien, aber es jagt ihnen aktiv hinterher und löscht sie, sobald sie geschrieben sind …

Blaue Ernte

BlueHarvest entfernt automatisch .DS_Store- und ._ AppleDouble-Dateien von Ihren USB-Sticks, SD-Karten, Musikplayern, Dateiservern oder anderen Nicht-Mac-Festplatten. BlueHarvest entfernt diese Elemente, sobald sie erstellt oder geändert werden, sodass Sie immer frei von Metadaten sind, ohne dass Sie einen Finger rühren müssen.

Keine Zugehörigkeit, ich benutze es nur seit einigen Jahren recht erfolgreich.

Soweit ich weiß, kann man nicht verhindern, dass diese Dateien erstellt werden. Zumindest der Finder wird sie erstellen.

Das Löschen dieser Dateien hilft auch nicht, denn wenn Sie das nächste Mal auf das Volume und seine Ordner auf dem Mac zugreifen, erstellt der Finder sie erneut.

Ich bin erstaunt, dass Ihre Windows-Kollegen diese Dateien sehen. Ich arbeite jetzt seit vielen Jahren mit meinem Mac mit Mac und Windows - und ich sehe diese Dateien nie. Weder auf Mac noch auf Windows.

Diese Dateien sind standardmäßig als „versteckt“ markiert und werden nicht angezeigt, wenn Sie Windows so eingestellt haben, dass versteckte Dateien und Ordner ausgeblendet werden.

Ich habe nachgesehen, und sie haben "versteckte Dateien ausblenden" deaktiviert. Dies hindert sie jedoch nicht daran, erstellt zu werden. Ich denke, es gibt eine Möglichkeit, dies zu beheben, da in den Standardeinstellungen von OS 10.5 com.apple.desktopservices DSDontWriteNetworkStores -bool true geschrieben wurde
Wenn sie "versteckte Dateien ausblenden" deaktiviert (nicht aktiviert) haben, ist es genau umgekehrt: Aktivieren Sie es. :-) Und wie gesagt: Soweit ich weiß, gibt es keine "native OS X-Lösung". Und: Sie haben auf eine Antwort von "support.apple.com" verlinkt, die besagt: "Das Deaktivieren der Erstellung von .DS_Store-Dateien auf Remote-Dateiservern kann zu unerwartetem Verhalten im Finder führen". Und: Ich würde nicht vorschlagen, Anwendungen zu installieren, die versprechen, dies zu verhindern. Soweit ich weiß, kann das sehr gefährlich sein.
"das kann sehr gefährlich sein" :) Jetzt will ich wirklich, dass diese Dateien weg sind! Im Ernst, .DS_Store-Dateien speichern Finder-Eigenschaften, und beschädigte DS_Store-Dateien können tatsächlich seltsame Dinge tun. Ich möchte keine beschädigten DS_Store-Dateien, ich möchte KEINE DS_Store-Dateien. Ich habe keine Angst, sie zu entfernen. Und zurück zu meiner ursprünglichen Frage: Wie kann ich verhindern, dass OS X diese seltsamen unsichtbaren Dateien erstellt? Und damit meine ich alle ._-Dateien und .DS_Store-Dateien. Nichts anderes.
Es wäre hilfreich für mich (und vielleicht auch für Sie), wenn Sie bestätigen würden, dass die Personen "versteckte Dateien ausblenden" aktiviert (und nicht deaktiviert) haben. Und ich kann verstehen, dass Sie nicht wollen, dass diese Dateien erstellt werden und dass Sie eine native Lösung wollen, aber wenn es keine native Lösung gibt, hilft es nicht zu sagen "aber ich will es".

Ich habe einen sehr einfachen und kostenlosen Weg gefunden, um ._-Dateien loszuwerden, insbesondere von einer externen Fat32-HD.

Starten Sie OnyX (kostenlose Software). Wechseln Sie in den Dienstprogrammen zu AppleDouble, wählen Sie ... den Ordner aus. Das ist es!!!

Das OP gibt ganz ausdrücklich an, dass er kein Bereinigungstool möchte, sondern eines, das verhindert, dass die Dateien überhaupt geschrieben werden.