Carpeta atenuada en Finder (OSX) en la red SMB Share

Carpeta atenuada en Finder (OSX) en la red SMB Share

Tengan paciencia, esto es largo y complicado, pero TL;DR ¿Dónde oculta OSX atributos adicionales en los archivos (ya sea en recursos compartidos o locales)?

Estamos teniendo problemas en nuestro entorno empresarial. Tenemos una configuración de Oracle ZFS y nuestras máquinas OSX son SMB montando el volumen.

Un usuario intentó mover una carpeta entre ubicaciones y lo canceló a la mitad, lo que provocó que la carpeta en ambas ubicaciones apareciera en gris. En Finder muestra una fecha de creación y modificación en la carpeta del 13/06/1943 06:13:00 Desde nuestras estaciones de trabajo Linux, cuando registramos el archivo, muestra las fechas correctas de creación y modificación. Luego tocamos el archivo desde la estación de trabajo Linux o una estación de trabajo OSX y a través de la terminal podemos ver la carpeta e incluso usar el comando abrir en la carpeta. Pero a través del Finder permanece atenuado y no se puede abrir. Esto afectó a todas las estaciones de trabajo OSX que accedían a este archivo. Ninguno de ellos pudo verlo, pero Windows y Linux estaban bien.

Terminamos usando los comandos obsoletos GetFileInfo y SetFile para resolver este problema.

Mi pregunta a la comunidad es dónde se almacenan estos atributos, ya que no eran visibles en el archivo usando ls -la o stat. Pero estaban ahí cuando lo miramos con GetFileInfo. ¿Alguien sabe si OSX realiza algún almacenamiento en caché de Samba extraño y lo almacena en el servidor? ¿O pone esto en un estúpido archivo .DS_Store?

¡¡¡AYUDA!!! Por favor

Respuesta1

OS X tiene un par de formas de almacenar sus metadatos adicionales en volúmenes que no los admiten de forma nativa:

  • En cosas como volúmenes FAT, almacenará los metadatos como un archivo separado con un prefijo "._" en el nombre del archivo, usandomanzanadobleformato. Por ejemplo, si el archivo original era "algún archivo.txt" y lo copió en un volumen FAT32, los datos se copiarían a "algún archivo.txt" y los metadatos se guardarían como "._algún archivo.txt".

  • En un volumen NTFS montado sobre SMB (si se aplican ciertas condiciones que no entiendo completamente), almacenará los metadatos comoFlujos de datos alternativos NTFS.

No estoy seguro de si la implementación SMB de su servidor Oracle admite flujos de datos alternativos, pero supongo que sí, y Mac los está usando para almacenar metadatos adicionales (y el servidor probablemente los esté almacenando como atributos extendidos ZFS). Puede buscarlos directamente en el servidor o también puede intentar montar el volumen desde un cliente de Windows y ver sitransmisiones.exepuede verlos.

Respuesta2

Recibí el 24 de enero de 1984 a las 3:00 A, ese es el huevo de pascua (el día en que se vendió la primera Mac): marca de tiempo durante el tránsito hasta que se completa la transferencia (donde hubo algún problema técnico que no corrigió automáticamente esa fecha en la que se realizó la copia). se terminó)

asumiendo que las carpetas atenuadas están en el nivel superior dentro de una carpeta específica (de lo contrario, agregue "-recurse" al comando gci y elimine "-max Depth 1" del comando de búsqueda):

no ADS (en una máquina PowerShell con WinOS):

    gci -path 'd:\specificfolder' | % {$_.fullname} | gi -stream *

no AppleDouble (conéctese a la carpeta específica buena, luego a la carpeta específica mala (es decir, la carpeta mala tendrá "-1" agregado), luego en la terminal):

    rm /Volumes/specificfolder-1/._*  && rm /Volumes/specificfolder-1/.DS_Store

Windows está bien con las carpetas incorrectas (y ve las fechas correctamente), y tienes razón en que Mac bajo el capó Unix (o Linux) ve la fecha correcta con el ls -lacomando, y todos los MacOS ven el síndrome atenuado, por lo que no es específico. a la máquina que utilizó para copiar el tipo de problema (y copiar el archivo en Windows produce una copia atenuada, por lo que WinOS seguramente sabe cómo transferir esa información oculta).

Por lo tanto, solo puedo ayudar a identificar dónde radica el problema y estar de acuerdo con su solución (pero tenga en cuenta que hacer clic derecho y Obtener información o seleccionar y comando+i no ha desaparecido en High Sierra, el sistema operativo actual al momento de escribir este artículo); sin embargo, si tiene muchas carpetas atenuadas: es mejor automatizarlas; Entonces, para agregar algo, puedes ejecutar los dos comandos siguientes:

    find /Volumes/specificfolder/ -maxdepth 1 -type d -exec getfileinfo {} \; \
    | egrep "directory|created" | sed -e 's/directory: "\(.*\)"/\1/' \ 
    | sed -e 's/created: \(.*\)/\1/' \
    | sed -e 's#/Volumes/specificfolder#/Volumes/specificfolder-1#' > temp.txt


    while read oddline; do read evenline; setfile -d "$evenline" "$oddline"; \
    done < temp.txt

información relacionada