O novo recurso Versões no Lion cria arquivos ocultos que armazenam versões antigas do documento em que você está trabalhando, caso deseje reverter para uma versão mais antiga do documento. Se eu arrastar um documento para a Lixeira, selecione Secure Empty Trash no menu Finder, os arquivos da versão oculta serão excluídos com segurança junto com o documento?
12
Respostas:
Meu palpite é que não, mas essa não é uma resposta definitiva.
Primeiro criei um arquivo .txt muito grande (~ 160 MB) e fiz alterações no arquivo no TextEdit. Como esperado, esse arquivo e suas versões apareceram em
/.DocumentRevisions-V100/PerUID
. Os arquivos pareciam ter ~ 160 MBls
, mas, de acordo com odu -h
disco 0B, eram usados. A contagem de links físicos para cada arquivo era 1. Uma pasta chamada.cs
(armazenamento em partes) abaixo/.DocumentRevisions-V100
cresceu cerca de 110 MB.Toda vez que eu alterava o arquivo, acontecia o seguinte
/.DocumentRevisions-V100
:/.DocumentRevisions-V100/staging/
. A contagem de links físicos para este arquivo é 1./.DocumentRevisions-V100/PerUID/<UID>/<#>/com.apple.documentVersions
. A contagem de links físicos permaneceu 1./.DocumentRevisions-V100/.cs
cresceu cerca de 2 MB.O espaço livre da unidade (
df
) era consistente com o quedu
me dizia. O espaço livre diminuiria significativamente e retornaria quase ao que era antes de salvar uma nova versão.Em seguida, tentei destruir o arquivo com o Secure Empty Trash. O OS X parece usar um programa chamado
Locum
para excluir com segurança o arquivo. Anexarfs_usage
aLocum
mostra uma enorme quantidade de leituras e gravações no arquivo .txt original. EnquantoLocum
faz isso, todas as versões abaixo/.DocumentRevisions-V100/PerUID
ainda podem ser acessadas com os dados intactos. Após aLocum
gravação dos dados, ele desassocia o arquivo .txt original e as versões/.DocumentRevisions-V100/PerUID
desaparecem repentinamente.Locum
depois passa para qualquer outra coisa no Lixo, sem nunca tocar/.DocumentRevisions-V100
.O que quer que esteja dentro
/.DocumentRevisions-V100
não está sendo apagado com segurança.Edição: Devo acrescentar que tudo o que está dentro
/.DocumentRevisions-V100
é de alguma forma ofuscado ou compactado (a pasta era apenas ~ 120 MB). Ainda não li as versões ou as seções do sistema de arquivos da revisão da Siracusa ... talvez haja pistas lá.fonte
Acabei de testar isso e parece que os arquivos mais antigos são realmente excluídos. Não importava se eu escolhi Secure Empty Trash ou simplesmente esvaziei o lixo normalmente, eles também foram excluídos.
Um pouco mais detalhadamente:
Para testar isso, habilitei o usuário root para permitir que eu espiasse
/.DocumentRevisions-V100
os arquivos. A estrutura exata desta pasta e seu conteúdo são melhor explicados na revisão do leão de John Siracusa (Internals, Document Revisions).Criei alguns arquivos e fiz algumas alterações, salvando novas versões. A pasta que continha as revisões preenchida com novos arquivos quando eu salvei novas versões. Dentro desta pasta de nível superior, há uma pasta chamada
PerUID
que abriga subpastas para cada conta de usuário. Cada pasta da conta de usuário contém uma série de pastas numeradas, uma pasta para cada arquivo que possui revisões salvas. Assim, as revisões reais são salvas como arquivos alguns níveis abaixo nesta hierarquia, com nomes de arquivos com hash. Esvaziar a lixeira (de qualquer maneira) excluiria esses arquivos, mas a estrutura de pastas anterior permaneceria no local.Antes de excluir:
/.DocumentRevisions-V100/PerUID/0/5/com.apple.revisions
Esta pasta ainda possui as versões anteriores.Após excluir:
/.DocumentRevisions-V100/PerUID/0/5/com.apple.revisions
Esta pasta ainda existe, mas está vazia.Como não inspecionei as outras pastas
/.DocumentRevisions-V100/
, não verifiquei os bancos de dados contidos nelas. Siracusa entra em mais detalhes, mas eles parecem existir para conter bancos de dados para rastrear alterações e mapear os arquivos do usuário para as revisões salvas pelo sistema. Estou bastante certo de que nenhum conteúdo do documento é salvo lá, embora não tenha certeza sobre os nomes de arquivos e se os nomes de arquivos estão presentes, se eles estão em hash ou não.fonte