Deshabilitar el almacenamiento de archivos invisibles "._" en mi almacenamiento de red cfs o smb

34

Uso OS X Mavericks y tengo algunas unidades de almacenamiento de la empresa montadas (usando smb o cfs). (smb: //[email protected]/directory/data). Cuando trabajo con archivos en la unidad o copio archivos en la unidad, se crean algunos archivos ocultos. La mayoría de estos archivos comienzan con punto-guión ._y luego el nombre del archivo original, como:

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

Y la mayoría de las veces, los famosos ._.DS_Storey .DS_Storetambién están allí.

En mi Mac, estos .elementos de punto son invisibles, pero mis colegas de Windows sí ven estos archivos. ¿Cómo puedo evitar que OS X haga estos extraños archivos invisibles?

En support.apple.com (y otras fuentes de Internet) puede encontrar una 'escritura predeterminada' para deshabilitar la creación de archivos .DS_Store en sus unidades de red. Pero esto no funciona en Mavericks:

defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true

Por ahora uso este oneliner, pero hacer un rm -rfsí se siente mal en este caso.

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

Editar: no quiero eliminar los archivos ni excluirlos de la copia. Quiero que no se creen en primer lugar.

Editar: prefiero una solución OS X 'nativa' sobre aplicaciones de terceros.

Editar: esta pregunta tiene dos respuestas, una para los archivos ._ y otra para los archivos .DS_Store. La recompensa es recompensada dot_clean, esta aplicación de línea de comando nativa limpia todos los archivos ._. Lamentablemente, no borra los archivos .DS_Store, esto se puede hacer efectivamente con Asepsis. Asepsis almacena .DS_Stores en una ubicación fija, y no en la carpeta misma.

PrimoCocaína
fuente
No estoy seguro de si estas sugerencias resolverán su problema, por lo que dejarlas en un comentario. 1. Pruebe TinkerTool bresink.com/osx/TinkerTool.html y use Finder> "No cree archivos ocultos .DS_Store a través de una conexión de red". 2. Pruebe el Panel de preferencias del sistema Secretos secrets.blacktree.com y desactive Finder> Usar .DS_Stores en una red.
@gentlemanhog, probaré tus sugerencias. Pero prefiero una solución OS X 'nativa' sobre aplicaciones de terceros.
CousinCocaine
@gentlemanhog, desafortunadamente sus soluciones no funcionan en Mavericks.
CousinCocaine

Respuestas:

31

Debo admitir que no me había dado cuenta de que el defaults writecomando dejó de funcionar en Mavericks. Sin embargo, cuando limpio los montajes de red, en lugar de su único revestimiento , findy rmuso esto:

dot_clean .

El archivo man explica:

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

No uso la bandera -m, pero puede ser útil en su situación.

-m      Always delete dot underbar files.

Aquí hay otra persona que intenta activamente evitar que se creen archivos .DS_Store: http://www.aorensoftware.com/blog/2011/12/24/death-to-ds_store/ - parece que no los quiere en las unidades ¡tanto como él no los quiere en la red!

malvado
fuente
Esta es la herramienta adecuada para el trabajo. Desafortunadamente, esta solución es el montaje 'posterior' y debe ejecutarse después de que ocurra el montaje. La asepsia funciona mejor ( apple.stackexchange.com/a/136558/55028 ) pero es una aplicación de terceros y solo funciona en archivos .DS_Store, y solo funciona para todos los archivos .DS_Store en cada montaje.
CousinCocaine
12

Acabo de probar, y esto funciona en Mavericks (al menos para deshabilitar .DS_Store no los recursos compartidos de red):

defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true

Solo necesita recordar reiniciar Finder también:

killall Finder
dmuir
fuente
1
Esto no funciona en El Capitan, para una unidad de disco Samba. .DS_Storelos archivos aún se están creando
Sébastien
No .DS_Storeson archivos AppleDouble, solo son archivos invisibles "normales" creados por Finder. Por lo tanto, su visualización de esos archivos .DS_Store no indica si DSDontWriteNetworkStoresfunciona o no.
Thomas Tempelmann
4

Los ._archivos son archivos AppleDouble que se utilizan para almacenar metadatos como atributos extendidos, ACL, banderas de archivos y bifurcaciones de recursos.

Para eliminarlos, ejecute:

find . -name ._\* -delete

Puede ver si los archivos tienen atributos extendidos, ACL o marcas de archivo con ls -l@eO. Los ._archivos generalmente se crean porque los archivos tienen atributos extendidos. Puede usar xattr -cpara eliminar atributos extendidos o chmod -Npara eliminar ACL. cp -Xy rsynccopie archivos sin atributos extendidos, ACL, marcas de archivo o bifurcaciones de recursos.

Lri
fuente
No quiero eliminar los archivos ni excluirlos de la copia. Quiero que no se creen en primer lugar.
CousinCocaine
2
Si está utilizando el Finder, no puede evitar que se creen.
Fyrefly
@Fyrefly, pero puedes crearlos en otro lugar. Ver Asepsis , apple.stackexchange.com/a/136558/55028 . Por lo tanto, también podría ser posible una solución 'nativa'
CousinCocaine
3

Como tendría que deshabilitar la escritura de archivos ocultos en cada Mac que pudiera conectarse a su recurso compartido, una mejor opción sería detener esto en el recurso compartido y no en los clientes.

Todo lo que necesita hacer es editar su configuración compartida (por ejemplo, en Linux en /etc/samba/smb.conf) y agregar la siguiente opción en su configuración compartida:

veto files = /._*/.DS_Store/ 

Ahora ningún cliente de Mac puede guardar ningún archivo con esos patrones en su recurso compartido.

cloudranger
fuente
1
'veto files' no impide que se escriban archivos, sino que evita que los usuarios los vean . Consulte samba.org
Justin Catterall
1
sin embargo, samba tiene la opción "eliminar archivos de veto = sí", que también los elimina.
rwenz3l
1
Desafortunadamente, delete veto files = yesno elimina esos archivos de puntos, solo asegura que puede eliminar una carpeta que contiene archivos que han sido ocultos para la vista veto files, por lo que no logra lo que buscaba el OP (y lo que también estoy buscando en vano para).
xmnboy
2

No lo he intentado yo mismo, y me doy cuenta de que el OP prefiere soluciones nativas, pero no obstante:

Hay una aplicación llamada Asepsis que funciona redirigiendo la creación de esos archivos a una carpeta especial, es decir, evitando que aparezcan.

escarcha
fuente
Esta es una buena herramienta para el trabajo. Desafortunadamente, esta solución es una aplicación de terceros y solo funciona en archivos .DS_Store (no archivos ._), y solo funciona para todos los archivos .DS_Store en cada montaje. Esta es una buena solución, pero no archivos nativos y no ._ y por lo tanto no hay recompensas. sry
CousinCocaine
1

No es una solución nativa, ni tampoco en realidad prevenir estos archivos se escriben, pero no persiguen activamente después de ellos y eliminar tan pronto como se escriben ...

Cosecha azul

BlueHarvest elimina automáticamente los archivos .DS_Store y ._ AppleDouble de sus llaves USB, tarjetas SD, reproductores de música, servidores de archivos o cualquier disco que no sea Mac. BlueHarvest elimina estos elementos a medida que se crean o modifican para que siempre esté libre de metadatos sin necesidad de mover un dedo.

Sin afiliación, lo he estado usando con bastante éxito durante varios años.

Tetsujin
fuente
0

Que yo sepa, no puede evitar que se creen estos archivos. Al menos el Finder los creará.

Eliminar estos archivos tampoco ayudará, porque la próxima vez que acceda al volumen y sus carpetas en Mac, el Finder los creará nuevamente.

Me sorprende que sus colegas de Windows vean estos archivos. Estoy trabajando durante muchos años con mi Mac usando Mac y Windows, y nunca veo estos archivos. Ni en Mac ni en Windows.

Estos archivos están marcados como "ocultos" de forma predeterminada, y no aparecerán si tiene configurado Windows para ocultar archivos y carpetas ocultos.

Martín
fuente
Lo comprobé, y tienen desactivado 'ocultar archivos ocultos'. Pero esto no impide que se creen. Creo que hay una manera de solucionar esto, ya que había en OS 10.5 valores predeterminados escribir com.apple.desktopservices DSDontWriteNetworkStores -bool true
CousinCocaine
Si deshabilitaron (desmarcaron) 'ocultar archivos ocultos', entonces es todo lo contrario: habilítelo. :-) Y como dije: hasta donde yo sé, no existe una solución de "solución OS X nativa". Y: se vinculó a una respuesta de "support.apple.com" que dice: "Deshabilitar la creación de archivos .DS_Store en servidores de archivos remotos puede causar un comportamiento inesperado en el Finder". Y: no sugeriría instalar aplicaciones que prometen evitarlo. Hasta donde yo sé, esto puede ser muy peligroso.
Martin
2
"esto puede ser muy peligroso" :) ¡Ahora realmente quiero que se vayan estos archivos! En serio, los archivos .DS_Store almacenan las propiedades del Finder, y los archivos corruptos de DS_Store pueden hacer cosas extrañas. No quiero archivos DS_Store corruptos, no quiero archivos DS_Store. No tengo miedo de eliminarlos. Y volviendo a mi pregunta original: ¿Cómo puedo evitar que OS X haga estos extraños archivos invisibles? Y con eso me refiero a todos los archivos ._ y .DS_Store. Nada más.
CousinCocaine
Sería útil para mí (y puede ser usted) si confirmara que las personas habilitadas (y no deshabilitadas) "ocultan archivos ocultos". Y puedo entender que no desea que se creen estos archivos y que desea una solución nativa, pero si no hay una solución nativa, no sirve de nada decir "pero lo quiero".
Martin
-1

Encontré una manera muy fácil y gratuita de deshacerme de los archivos ._, especialmente de un HD fat32 externo.

Inicie OnyX (software libre). Desde Utilidades, vaya a AppleDouble, seleccione ... la carpeta. ¡¡¡Eso es!!!

Mariano Rocchi
fuente
1
El OP dice específicamente que no quiere una herramienta de limpieza, sino una que evite que se escriban los archivos.
Tetsujin