Greyed out Pasta no Finder (OSX) no compartilhamento de rede SMB

1

Tenha paciência comigo, isso é longo e complicado, mas TL; DR Onde o OSX oculta atributos extras em arquivos (em compartilhamentos ou local)?

Estamos tendo problemas em nosso ambiente empresarial. Temos uma configuração do Oracle ZFS e nossas máquinas OSX são SMB montando o volume.

Um usuário tentou mover uma pasta entre locais e cancelou isso na metade do processo, o que resultou na exibição da pasta em ambos os locais. No Finder mostra uma data de criação e modificação na pasta de 13/06/1943 06:13:00 Das nossas estações de trabalho linux quando nós estatizamos o arquivo, ele mostra a criação correta e as datas modificadas. Em seguida, tocamos no arquivo da estação de trabalho linux ou de uma estação de trabalho OSX e, por meio do terminal, podemos ver a pasta e até usar o comando de abertura na pasta. Mas através do Finder ele fica cinza e incapaz de ser aberto. Isso afetou todas as estações de trabalho do OSX que acessam esse arquivo. Nenhum deles podia ver, mas o Windows e o Linux estavam bem.

Acabamos usando os comandos GetFileInfo e SetFile desaprovados para resolver isso.

Minha pergunta para a comunidade é, onde estão esses atributos armazenados, pois eles não eram visíveis no arquivo usando ls -la ou stat. Mas estava lá quando nós olhamos com GetFileInfo. Alguém sabe se o OSX faz algum cache estranho do Samba e o armazena no servidor? ou coloca isso em um arquivo estúpido .DS_Store?

AJUDA !!! PLZ

    
por Gunwalloe 01.10.2015 / 03:05

2 respostas

1

O OS X possui algumas maneiras de armazenar seus metadados extras em volumes que não são compatíveis nativamente:

  • Em coisas como volumes FAT, ele armazenará os metadados como um arquivo separado com um prefixo "._" no nome do arquivo, usando Formato AppleDouble . Por exemplo, se o arquivo original era "somefile.txt" e você copiou para um volume FAT32, os dados seriam copiados para "somefile.txt" e os metadados seriam salvos como "._somefile.txt".

  • Em um volume NTFS montado sobre SMB (se determinadas condições que não entendi bem) se aplicarem, ele armazenará os metadados como Fluxos de dados alternativos NTFS .

Não tenho certeza se a implementação do SMB do seu servidor Oracle suporta fluxos de dados alternativos, mas acho que sim, e o Mac os está usando para armazenar metadados extras (e o servidor provavelmente os armazena como atributos estendidos do ZFS) . Você poderia procurá-los diretamente no servidor, ou você também pode tentar montar o volume de um cliente Windows e ver se streams.exe pode vê-los.

    
por 04.10.2015 / 05:44
0

Eu estava recebendo 24 de janeiro de 1984 3: 00A, esse é o ovo de páscoa (o dia em que o primeiro Mac foi vendido): durante o tempo de trânsito até a transferência ser concluída (onde houve alguma falha que não auto-fixou essa data quando a cópia acabou)

assumindo que as pastas esmaecidas estão no nível superior dentro de uma pasta spedific (caso contrário, adicione "-recurse" ao comando gci e remova "-maxdepth 1" do comando find):

não é ADS (em um powershell de máquina WinOS):

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

não AppleDouble (conecte-se à pasta específica boa e, em seguida, à pasta específica incorreta (ou seja, pasta incorreta terá "-1" anexado) e, em seguida, no terminal):

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

O Windows está bem com as pastas ruins (e vê as datas corretamente), e você está certo sobre o unix (ou linux) do Mac vendo a data certa com o comando ls -la , e todos os MacOS vêem o cinza síndrome, por isso não é específico para a máquina que você usou para copiar o tipo de problema (e copiar o arquivo no Windows produzindo uma cópia em cinza, então o WinOS certamente sabe como transferir essa informação oculta!).

Portanto, só posso ajudar a identificar onde está o problema e concordar com a sua solução (mas clique com o botão direito e obter informações ou selecione e comando + i não foi embora em High Sierra, SO atual ); no entanto, se você tiver várias pastas desabilitadas: melhor automatize; Então, para adicionar algo, você pode executar os dois comandos a seguir:

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


    while read oddline; do read evenline; setfile -d "$evenline" "$oddline"; \
    done < temp.txt
    
por 21.04.2018 / 00:57