
Um amigo estava tendo problemas cp
para copiar uma imagem de disco (um pacote esparso para ser mais preciso). Eu descobri que a linha que ele estava usando copiava todo o /contents/ (sparsebundles são pacotes, ou seja, diretórios tratados como arquivos em GUIs) para o novo diretório em vez de copiar o sparsebundle em si.
Mais tarde, criei um pacote esparso em meu computador para experimentar cp
e reproduzir o comportamento que ele obteve. Posteriormente, o Finder e o Dock começaram a ser tratados /tmp
como um arquivo. Clicar na entrada que eu fiz na barra lateral abriria uma janela do Terminal /tmp ; exit;
(que falharia, é claro, porque /tmp
é um diretório). Eu ainda poderia usar o Stack normalmente, exceto pela Open in Finder
opção na parte inferior, que tentaria executá-lo.
Curiosamente, ainda consegui abrir /tmp
no Finder abrindo um subdiretório e usando o Go > Enclosing Folder
comando ( command+ up arrow). Também consegui acessá-lo normalmente através da linha de comando.
Tentei remover e recriar a entrada da barra lateral e a pilha, mas tudo o que aconteceu foi fazer com que o Dock o mostrasse como um arquivo e tentasse executá-lo imediatamente quando cliquei nele. Então tentei reiniciar para limpar; parecia ter sido resolvido normalmente, mas isso não afetou o problema.
Alguém pode lançar alguma luz sobre esse assunto?
ATUALIZAR:Pensei em tentar ls -l
, que tinha um @ no final do campo de permissões. Descobri que ele tinha um com.apple.FinderInfo
atributo estendido, embora minhas tentativas de lê-lo só me dessem o seguinte:
00 00 00 00 00 00 00 00 20 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Excluir o atributo estendido ( xattr -d com.apple.FinderInfo /tmp
como eu, sem privilégios elevados) parece ter corrigido isso, embora pelo que posso dizer em minha rápida pesquisa sobre ele, possa ter outras consequências negativas (e não tenho certeza se houve um com.apple.FinderInfo
atributo lá antes...). Ainda gostaria de uma resposta sobre o que pode ter acontecido e por que tive esse comportamento.
Responder1
O "20" no xattr do FinderInfo indica que o bit do pacote está definido. O bit do pacote diz ao Finder para exibir a pasta como um arquivo, em vez de uma pasta. Suspeito que esse atributo foi copiado do sparsebundle (que na verdade é uma pasta, mas o Finder é exibido como um arquivo simples). Então, o que você está vendo é um comportamento mais ou menos esperado com esse sinalizador definido.