Nowa funkcja wersji w Lion tworzy ukryte pliki, w których przechowywane są stare wersje dokumentu, nad którym pracujesz, na wypadek gdybyś chciał przywrócić starszą wersję dokumentu. Jeśli przeciągnę dokument do Kosza, a następnie wybierz Bezpieczne opróżnij kosz z menu Findera, czy pliki wersji ukrytej zostaną bezpiecznie usunięte wraz z dokumentem?
12
Odpowiedzi:
Domyślam się, że nie, ale nie jest to ostateczna odpowiedź.
Najpierw utworzyłem bardzo duży (~ 160 MB) plik .txt i wprowadziłem zmiany w pliku w TextEdit. Zgodnie z oczekiwaniami ten plik i jego wersje pojawiły się w
/.DocumentRevisions-V100/PerUID
. Pliki wyglądały na ~ 160 MBls
, ale zgodnie z tym,du -h
że użyły 0B na dysku. Liczba linków twardych dla każdego pliku wynosiła 1. Folder o nazwie.cs
(pamięć masowa)/.DocumentRevisions-V100
został powiększony o około 110 MB.Za każdym razem, gdy zmieniałem plik, następowały następujące zdarzenia
/.DocumentRevisions-V100
:/.DocumentRevisions-V100/staging/
. Liczba linków twardych dla tego pliku wynosi 1./.DocumentRevisions-V100/PerUID/<UID>/<#>/com.apple.documentVersions
. Liczba linków twardych pozostała 1./.DocumentRevisions-V100/.cs
powiększył się o około 2 MB.Wolne miejsce na dysku (
df
) było zgodne z tymdu
, co mi powiedział. Wolne miejsce znacznie by spadło, a następnie powróciło do prawie tego, co było przed zapisaniem nowej wersji.Następnie próbowałem zniszczyć plik za pomocą Secure Empty Trash. Wydaje się, że OS X używa programu wywoływanego w
Locum
celu bezpiecznego usunięcia pliku. Dołączaniefs_usage
doLocum
pokazuje bardzo dużo odczytów i zapisów do oryginalnego pliku .txt. Podczas gdyLocum
robi to, wszystkie dostępne poniżej wersje/.DocumentRevisions-V100/PerUID
nadal są dostępne przy zachowaniu nienaruszonych danych. Po zakończeniuLocum
zapisywania danych odłącza oryginalny plik .txt, a wersje/.DocumentRevisions-V100/PerUID
nagle znikają.Locum
następnie przechodzi do czegokolwiek innego w Koszu, nigdy nie dotykając/.DocumentRevisions-V100
.Cokolwiek jest,
/.DocumentRevisions-V100
nie jest bezpiecznie usuwane.EDYCJA: Powinienem dodać, że wszystko, co jest, jest w
/.DocumentRevisions-V100
jakiś sposób zaciemnione lub skompresowane (folder miał tylko ~ 120 MB). Nie przeczytałem jeszcze wersji ani sekcji systemu plików recenzji Siracusa… może są tam jakieś wskazówki.źródło
Właśnie to przetestowałem i wydaje się, że starsze pliki rzeczywiście zostają usunięte. Nie miało znaczenia, czy wybrałem Bezpieczne opróżnianie kosza, czy zwykłe opróżnianie kosza, również zostały usunięte.
Trochę więcej szczegółów:
Aby to przetestować, włączyłem użytkownika root, aby mógł zajrzeć do
/.DocumentRevisions-V100
plików i plików znajdujących się w nim. Dokładna struktura tego folderu i jego zawartość są lepiej wyjaśnione w przeglądzie Lion Johna Siracusa (Wewnętrzne, Dokumenty).Utworzyłem kilka plików, a następnie wprowadziłem zmiany, zapisując nowe wersje. Folder zawierający wersje wypełnione nowymi plikami podczas zapisywania nowych wersji. W tym folderze najwyższego poziomu znajduje się folder o nazwie
PerUID
, który zawiera podfoldery dla każdego konta użytkownika. Każdy folder konta użytkownika zawiera serię ponumerowanych folderów, po jednym folderze dla każdego pliku, który ma zapisane wersje. Tak więc aktualne wersje są zapisywane jako pliki kilka poziomów w tej hierarchii, z zaszyfrowanymi nazwami plików. Opróżnienie kosza (w obie strony) spowoduje usunięcie tych plików, ale poprzednia struktura folderów pozostanie na miejscu.Przed usunięciem: W
/.DocumentRevisions-V100/PerUID/0/5/com.apple.revisions
tym folderze nadal znajdują się poprzednie wersje.Po usunięciu:
/.DocumentRevisions-V100/PerUID/0/5/com.apple.revisions
ten folder nadal istnieje, ale jest pusty.Nie sprawdziłem innych folderów
/.DocumentRevisions-V100/
, więc nie sprawdziłem zawartych w nich baz danych. Siracusa jest bardziej szczegółowy, ale wydaje się, że istnieją, aby zawierać bazy danych do śledzenia zmian i mapowania plików użytkownika na wersje zapisane przez system. Jestem całkiem pewien, że nie zapisano tam żadnej zawartości dokumentu, chociaż nie jestem pewien co do nazw plików, a jeśli nazwy plików są obecne, czy są one mieszane, czy nie.źródło