Disabilita la memorizzazione di file invisibili "._" sul mio cfs o memoria di rete smb


34

Uso OS X Mavericks e ho montato alcune unità di archiviazione aziendali (usando smb o cfs). (smb: //username@address.path.toserver.com/directory/data). Quando lavoro con i file sull'unità o copio i file sull'unità, vengono creati alcuni file nascosti. La maggior parte di questi file inizia con un trattino ._e poi il nome del file originale, come:

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

E la maggior parte delle volte, i famosi ._.DS_Storee ci .DS_Storesono anche.

Sul mio Mac, questi .elementi punto sono invisibili, ma i miei colleghi di Windows vedono questi file. Come posso impedire a OS X di creare questi strani file invisibili?

Su support.apple.com (e altre fonti Internet) puoi trovare una "scrittura predefinita" per disabilitare la creazione di file .DS_Store sulle tue unità di rete. Ma questo non funziona in Mavericks:

defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true

Per ora uso questo oneliner, ma rm -rfin questo caso mi sento male.

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

Modifica: non desidero eliminare i file o escluderli dalla copia. Voglio che non vengano creati in primo luogo.

Modifica: preferisco una soluzione OS X "nativa" rispetto alle app di terze parti.

Modifica: questa domanda ha due risposte, una per i file ._ e una per i file .DS_Store. La ricompensa viene premiata per dot_clean, questa app nativa della riga di comando pulisce tutti i file ._. Sfortunatamente non cancella i file .DS_Store, questo può essere efficacemente fatto con Asepsis. Asepsis memorizza .DS_Stores in una posizione fissa e non nella cartella stessa.


Non sono sicuro se questi suggerimenti risolveranno il tuo problema, quindi lasciali in un commento. 1. Prova TinkerTool bresink.com/osx/TinkerTool.html e usa il Finder> "Non creare file nascosti .DS_Store su una connessione di rete". 2. Prova il pannello delle preferenze del sistema Secrets secrets.blacktree.com e deseleziona Finder> Usa .DS_Stores su una rete.

@gentlemanhog, proverò i tuoi suggerimenti. Ma preferisco una soluzione OS X "nativa" rispetto alle app di terze parti.
Cugina Cocaina,

@gentlemanhog, sfortunatamente le tue soluzioni non funzionano in Mavericks.
Cugina Cocaina,

Risposte:


31

Devo ammettere che non avevo notato che il defaults writecomando ha smesso di funzionare in Mavericks. Tuttavia, quando Faccio i montaggi di rete puliti, invece del tuo unico liner finde rm, utilizzo questo:

dot_clean .

Il manfile spiega:

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

Non uso il flag -m, ma potresti trovarlo utile nella tua situazione.

-m      Always delete dot underbar files.

Ecco un'altra persona che sta attivamente cercando di impedire la creazione dei file .DS_Store: http://www.aorensoftware.com/blog/2011/12/24/death-to-ds_store/ - sembra che non li voglia su drive tanto quanto non li vuole sulla rete!


Questo è lo strumento giusto per il lavoro. Purtroppo questa soluzione è il montaggio "post" e deve essere eseguita dopo il montaggio. L'asepsi fa un lavoro migliore ( apple.stackexchange.com/a/136558/55028 ) ma è un'app di terze parti e funziona solo su file .DS_Store e funziona solo per tutti i file .DS_Store su ogni mount.
Cugina Cocaina,

12

Ho appena provato, e questo funziona in Mavericks (almeno per disabilitare .DS_Store non condivisioni di rete):

defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true

Devi solo ricordare di riavviare anche Finder:

killall Finder

1
Questo non funziona su El Capitan, per un'unità Samba. .DS_Storei file sono ancora in fase di creazione
Sébastien,

Non .DS_Storesono file AppleDouble, sono solo file "normali" invisibili creati dal Finder. Quindi, la visualizzazione di questi file .DS_Store non indica se DSDontWriteNetworkStoresfunziona o meno.
Thomas Tempelmann,

4

I ._file sono file AppleDouble utilizzati per archiviare metadati come attributi estesi, ACL, flag di file e fork di risorse.

Per eliminarli, esegui:

find . -name ._\* -delete

Puoi vedere se i file hanno attributi estesi, ACL o flag di file con ls -l@eO. I ._file vengono generalmente creati perché i file hanno attributi estesi. È possibile utilizzare xattr -cper eliminare attributi estesi o chmod -Nper eliminare ACL. cp -Xe rsynccopia i file senza attributi estesi, ACL, flag di file o fork di risorse.


Non voglio cancellare i file o escluderli dalla copia. Voglio che non vengano creati in primo luogo.
Cugina Cocaina,

2
Se stai utilizzando il Finder, non puoi impedire che vengano creati.
Fyrefly,

@Fyrefly, ma puoi crearli altrove. Vedi Asepsis, apple.stackexchange.com/a/136558/55028 . Quindi potrebbe anche essere possibile una soluzione "nativa"
CousinCocaine,

3

Poiché dovresti disabilitare la scrittura di file nascosti su ogni Mac che potrebbe connettersi alla tua condivisione, un'opzione migliore sarebbe quella di fermare questo alla condivisione e non sui client.

Tutto quello che devi fare è modificare la configurazione della condivisione (ad esempio in Linux in /etc/samba/smb.conf) e aggiungere la seguente opzione nella configurazione della condivisione:

veto files = /._*/.DS_Store/ 

Ora nessun client Mac può salvare nella tua condivisione file con tali schemi.


1
'file veto' non impedisce la scrittura dei file, ma impedisce agli utenti di vedere i file. Fare riferimento a samba.org
Justin Catterall il

1
samba ha comunque l'opzione "elimina file veto = yes", che li elimina anche.
rwenz3l,

1
Sfortunatamente, delete veto files = yesnon elimina quei file dot, assicura solo che è possibile eliminare una cartella che contiene file che sono stati nascosti alla vista veto filesdall'opzione, quindi non compie ciò che l'OP stava cercando (e per ciò che sto anche cercando invano per).
xmnboy,

2

Non ho provato questo da solo, e mi rendo conto che l'OP preferisce soluzioni native, ma comunque:

C'è un'app chiamata Asepsis che funziona reindirizzando la creazione di quei file in una cartella speciale, cioè in un modo che impedisce loro di apparire.


Questo è un buon strumento per il lavoro. Sfortunatamente questa soluzione è un'app di terze parti e funziona solo su file .DS_Store (non ._ file) e funziona solo per tutti i file .DS_Store su ogni mount. Questa è una buona soluzione, ma file non nativi e non ._ e quindi nessuna ricompensa. SRY.
Cugina Cocaina,

1

Non è una soluzione nativa, né impedisce effettivamente la scrittura di questi file, ma li insegue attivamente e li elimina non appena vengono scritti ...

BlueHarvest

BlueHarvest rimuove automaticamente i file .DS_Store e ._ AppleDouble dalle chiavi USB, dalle schede SD, dai lettori musicali, dai file server o da qualsiasi disco non Mac. BlueHarvest rimuove questi elementi quando vengono creati o modificati, così sarai sempre libero dai metadati senza che sia necessario alzare un dito.

Nessuna affiliazione, lo sto usando con successo da diversi anni.


0

Per quanto ne so, non puoi impedire che questi file vengano creati. Almeno il Finder li creerà.

Anche l'eliminazione di questi file non sarà di aiuto, poiché la prossima volta che accederai al volume e alle sue cartelle su Mac, il Finder li creerà di nuovo.

Sono sorpreso che i tuoi colleghi di Windows vedano questi file. Lavoro da molti anni con il mio Mac usando Mac e Windows - e non vedo mai questi file. Né su Mac né su Windows.

Questi file sono contrassegnati come "nascosti" per impostazione predefinita e non verranno visualizzati se Windows è impostato per nascondere file e cartelle nascosti.


Ho controllato e hanno disabilitato "nascondi file nascosti". Ma ciò non impedisce loro di essere creati. Penso che ci sia un modo per risolvere questo problema, poiché in OS 10.5 c'erano impostazioni predefinite scrivere com.apple.desktopservices DSDontWriteNetworkStores -bool true
CousinCocaine

Se hanno disabilitato (deselezionato) 'nascondi file nascosti', è solo il contrario: abilitarlo. :-) E come ho detto: per quanto ne so non esiste una soluzione "soluzione OS X nativa". E: sei collegato a una risposta di "support.apple.com" che dice: "Disabilitare la creazione di file .DS_Store su file server remoti può causare comportamenti imprevisti nel Finder". E: non consiglierei di installare applicazioni che promettono di prevenirlo. Per quanto ne so, questo può essere molto pericoloso.
Martin,

2
"questo può essere molto pericoloso" :) Ora voglio davvero che questi file scompaiano! Scherzi a parte, i file .DS_Store archiviano le proprietà del Finder e i file DS_Store danneggiati possono davvero fare cose strane. Non voglio file DS_Store danneggiati, NON voglio file DS_Store. Non ho paura di rimuoverli. E tornando alla mia domanda originale: come posso impedire a OS X di creare questi strani file invisibili? E con questo intendo tutti i file ._ e .DS_Store. Nient'altro.
Cugina Cocaina,

Sarebbe utile per me (e potresti essere tu) se confermassi che le persone abilitate (e non disabilitate) "nascondono i file nascosti". E posso capire che non vuoi che questi file vengano creati e che desideri una soluzione nativa, ma se non esiste una soluzione nativa, non aiuta a dire "ma lo voglio".
Martin,

-1

Ho trovato un modo molto semplice e gratuito per liberarmi dei file ._, specialmente da un HD fat32 esterno.

Avvia OnyX (software gratuito). Da Utilità, vai su AppleDouble, seleziona ... la cartella. Questo è tutto!!!


1
L'OP afferma chiaramente che non vuole uno strumento di pulizia, ma che impedisce la scrittura dei file.
Tetsujin,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.