Niezapisane pliki w systemie OS X Lion

14

Gdzie idą niezapisane pliki w Lion?

Wychodziłem z TextEdit bez zapisywania, ponieważ nie miałem zamiaru zapisywać, ale dzięki autozapisowi plik wciąż został gdzieś zapisany, ponieważ po ponownym otwarciu TextEdit plik, nad którym pracowałem, już tam jest (nawet jeśli wyłączyłem wznawianie>. <). Zastanawiałem się, czy ten plik został zapisany?

Samantha Catania
źródło
2
Czy możemy trzymać się tego, jak działa Edycja tekstu - może ona nie być zgodna z ogólnym idiomem Lwa i jest wyraźnie dużo złożoności między plikami tymczasowymi, niezapisanymi plikami i tym, co dzieje się, gdy faktycznie zapiszesz plik poza biblioteką, a następnie wprowadzisz poprawki do ten sam „plik”.
bmike
Znaleziono to !! ~ / Library / Containers / com.apple.TextEdit / Data / Library / Autosave Information / Unsaved TextEdit Document.rtf
Samantha Catania

Odpowiedzi:

12

~ / Biblioteka / Kontenery

Ten katalog służy wielu celom, z których niektóre mogą nie być jeszcze udokumentowane przez Apple.

Untitled, Niezapisane dokumenty do obsługi aplikacji

Aplikacje takie jak Preview i TextEdit.

Przykład

Skopiuj obraz do schowka. Otwórz podgląd, zamknij wszystkie okna, użyj polecenia Nowy ze schowka , wyjdź.

Otwórz TextEdit, zamknij wszystkie okna, wpisz coś w nowym oknie, wyjdź.

W terminalu uruchom dwa polecenia:

ls -@l ~/Library/Containers/com.apple.Preview/Data/Library/Autosave\ Information

ls -@l ~/Library/Containers/com.apple.TextEdit/Data/Library/Autosave\ Information

Niezapisane… pliki zostaną wyświetlone na liście.

Zapisane przez system wersje plików zapisanych przez użytkownika, w których system plików lub wolumin nie obsługuje trwałego przechowywania wersji

Systemy plików, takie jak MS-DOS (FAT); woluminy zamontowane przy użyciu AFP 3.3 lub SMB; i tak dalej.

Przykład

Nawiąż połączenie AFP lub SMB z serwerem plików. Użyj podglądu, aby otworzyć obraz na tym serwerze, edytować ten obraz, wyjść bez zapisywania wersji, rozłączyć się z serwerem.

W terminalu uruchom polecenie:

ls -lrt ~/Library/Containers/com.apple.Preview/Data/Library/Autosave\ Information

U stóp listy znajduje się katalog zawierający wersję automatycznie zapisaną przez system.

W tym samym środowisku sieciowym: jeśli ponownie otworzysz Podgląd, system może ponownie połączyć się z serwerem plików. Następnie w widoku przeglądarki wersji pliku zdalnego oś czasu będzie zawierać plik lokalny .

(Mógłbym bardziej szczegółowo, ale byłoby to nie na temat pytania otwierającego).

Inne cele

Poza dwoma wymienionymi powyżej celami ~/Library/Containersmogą mieć także inne cele.

Wskazówka

Pozwól systemowi zarządzać plikami w tych obszarach.

Unikaj utraty danych; nie podejmuj prób niepotrzebnych zmian ~/Librarylub podkatalogów.

Graham Perrin
źródło
Graham - sedno mojej odpowiedzi jest dokładnym duplikatem twojego, ale wybacz mi, jeśli napiszę o wiele więcej słów i w zupełnie inny sposób dotarcia do odpowiedzi. Informacje o automatycznym zapisywaniu i alternatywne systemy plików zdawały się zbyt mocno boleć mój mózg i chciałem podstawowe - to wszystko odpowiedź Maca oprócz twojego.
bmike
@bike nie wymaga przeprosin, ale dziękuję :-) i zapomniałem o /private/var/folderset cetera, więc twoja odpowiedź ma ode mnie głos w górę. Jest to z pewnością pytanie, w którym połączenie odpowiedzi, krótkich lub długich, stanowi wartość dodaną.
Graham Perrin
7

Podstawowym miejscem, w którym należy szukać niezapisanych zmian w TextEdit, jest ~/Library/Containers/com.apple.TextEdit/Data/Library/Autosave Information/

Zależy to od stanu dokumentu i jest skomplikowane (ponieważ niezapisane zmiany mogą również istnieć, gdy plik zostanie zapisany i nazwany po raz pierwszy).


Niezapisane dokumenty

Pierwszy typ - pliki startowe „za kulisami” - zaczynają się jako pliki tymczasowe w /private/var/folders/… i ostatecznie są przechowywane ~/Library/Containers/. Są one nazwane bez tytułu i bez tytułu 2 i tak dalej . Każda aplikacja otrzymuje własny katalog, a dla TextEdit - będziesz szukać pliku takiego jak~/Library/Containers/com.apple.TextEdit/Data/Library/Autosave Information/Unsaved TextEdit Document.rtf

Te bez tytułu dokumenty nie mają ikony proxy na pasku tytułu - wystarczy nazwa wybrana przez TextEdit:

zrzut ekranu bez tytułu dokumentu w TextEdit

Z tymi niezapisanymi plikami nie otrzymujesz żadnych wersji, blokowania ani powiadomień o zmianach innych niż normalny bufor cofania / ponawiania.

+S

Pierwszy zapis włącza przechowywanie wersji i wszystko, co się z tym wiąże. Dzieje się tak, gdy plik otrzymuje bardziej znaną lokalizację w systemie plików, co jest szansą na nazwę inną niż X bez tytułu . Ikona proxy jest wskazówką, że nie jest to już dokument AutoSave.

zrzut ekranu zapisanego dokumentu bez edycji w TextEdit

Plik nie jest już przechowywany wyłącznie w ~/Library/Containers/- pierwsza edycja jest zapisywana wszędzie tam, gdzie użytkownik wybierze w oknie dialogowym otwierania / zapisywania pliku.

Edycja (e) do zapisanego dokumentu

Wszelkie modyfikacje zapisanego dokumentu spowodują pojawienie się edytowanego słowa na pasku tytułu:

zrzut ekranu wydania w TextEdit

Powyższy plik zawiera:

  • wersja, która została przez Ciebie wyraźnie zapisana
  • plus edycja, która jest automatycznie zapisywana przez system .

W tym momencie masz pełen zakres narzędzi do przywracania zmian w tym pliku:

  • bufor cofania
  • automatyczne zapisywanie lub wersje danych w ~/Library/Containers/
  • ostatni zapisany stan w systemie plików
  • wersje przechowują od /.DocumentRevisions-V100

Zapisanie wersji spowoduje, że edytowane słowo zniknie z paska tytułu. W tym miejscu wyświetli się menu wersji, jeśli najedziesz myszą na nazwę pliku i cała infrastruktura wersji przejmie kontrolę. Zostawię mechanikę tego na inną odpowiedź - to wystarczająco długo.

zrzut ekranu menu wersji w TextEdit


Wiele innych plików jest aktualizowanych, gdy TextEdit tworzy i modyfikuje pliki:

  • lista najnowszych plików
  • lista aktualnie otwartych plików, gdy aplikacja się kończy
  • stan aplikacji do odtworzenia na wypadek ponownego uruchomienia komputera Mac (nawet nieoczekiwanie).

Podejścia systemowe do automatycznego zapisywania i wersje powinny zapewnić, że:

  • dane nigdy nie są tracone, gdy TextEdit kończy pracę normalnie
  • nieoczekiwane zamknięcie aplikacji powoduje utratę nie więcej niż kilku sekund edycji.
bmike
źródło
Nie mam ~ / Library / Contents / folder PS Moje foldery biblioteki nie są ukryte
Samantha Catania
Fascynujące, że tego brakuje. Czy wyłączyłeś automatyczne zapisywanie lub w inny sposób zablokowane foldery w folderze Stan zapisanych aplikacji
bmike
1
@Samantha Poprawiłem, /Library/Contentsaby przeczytać /Library/Containers… bmike, wprowadziłem kilka innych zmian, miejmy nadzieję, że nie łamię istoty twojego oryginału. Mamy różne style pisania, więc wycofywanie itp. Nie spowoduje obrażeń. Szczególnie interesujące (bez podania przykładów): czasami, gdy Edycja pojawia się na pasku tytułowym, ~/Library/Containersbędzie zawierać co najmniej jedną wersję wyraźnie zapisaną przez użytkownika, ale nie edycję automatycznie zapisaną przez System. Film jako część odpowiedzi (na inne, pokrywające się pytanie) powinien pomóc w wyjaśnieniu, ale bez pośpiechu.
Graham Perrin
@Samantha pokazywanie ~/Librarytymczasowo jest nieszkodliwe (jest to klawisz Alt / Option w menu Idź Findera). Ciągłe pokazywanie tego jest, sugeruję ostrożnie, cienkim końcem klina. Przy innych grubościach tego klina istnieją pojęcia, takie jak zapobieganie zapisom w niektórych obszarach ( przykład ), z których niektóre z pewnością mogą powodować problemy, gdy są najmniej oczekiwane, dlatego zachęcam ludzi do szanowania zachowania systemu na najcieńszym końcu klina… cokolwiek poza tym jest ogólnie na ryzyko użytkowników. Mam nadzieję, że to pomaga.
Graham Perrin,
1
Sprawiam, że folder Library i wszystkie ukryte pliki są widoczne, ponieważ jako programista czasami muszę przeglądać zawartość tych plików, ale zdecydowanie nie polecam zwykłym użytkownikom zajmowania się ukrytymi plikami, ponieważ jeśli coś zepsują, zamierzają trudno jest to naprawić>. <
Samantha Catania
5

Według recenzji Johna Siracusa na temat Lion jest on zapisany w /.DocumentRevisions-V100

użytkownik151019
źródło
plik jest tam (pod warunkiem, że masz ukryte pliki), i możesz uzyskać dostęp do pliku (pod warunkiem, że zalogujesz się jako użytkownik root) w folderze, o którym wspomniałeś, jest kilka pustych folderów, jeden z niewielu plików jest plik plist, ale nie wygląda na to, że zawiera niezapisane pliki.
Samantha Catania
Możesz także uzyskać dostęp do tego pliku przez terminal, ale nadal nie mogę znaleźć mojego niezapisanego pliku>. <
Samantha Catania
1
@Samantha powinieneś przejrzeć w niej bazę danych SQLite. Z recenzji: „… ( /.DocumentRevisions-V100/db-V1/db.sqlite) zawierającej tabele do śledzenia plików, poszczególne wersje tych plików (które Apple nazywa„ generacjami ”) oraz miejsce przechowywania danych.”
Jari Keinänen
2
Spójrz na fseventer [ fernlightning.com/doku.php?id=software:fseventer:start] , może być pomocne wyśledzenie go!
Agos,
2
Ta strona przeglądu Ars Technica jest bardziej skoncentrowana na rewizjach zapisanych plików; pytanie dotyczy niezapisanych plików.
Graham Perrin
5

Zgodnie z dokumentacją programistyczną Apple wszystkie nowe dokumenty, które nie zostały jeszcze jawnie zapisane, są automatycznie zapisywane w ~/Library/Autosave Information:

Automatyczne zapisywanie dokumentów jest obsługiwane przez wdrożenie automatycznego zapisywania w miejscu . Automatyczne zapisywanie w miejscu i automatyczne zapisywanie w innym miejscu chronią przed utratą pracy przez użytkownika z powodu awarii aplikacji, paniki jądra i awarii zasilania. Jednak automatyczne zapisywanie w miejscu różni się od automatycznego zapisywania w innym miejscu tym, że zastępuje rzeczywisty plik dokumentu, a nie zapisuje obok niego nowy plik zawierający zawartość automatycznie zapisanego dokumentu. (Automatyczne zapisywanie w miejscu wykonuje bezpieczne zapisywanie, pisząc najpierw do nowego pliku, a następnie przenosząc go w miejsce pliku dokumentu.)

Architektura dokumentów nadal korzysta z automatycznego zapisywania w innym miejscu, aby zapisać bez tytułu dokumenty, które zawierają treść, ale nie zostały wyraźnie zapisane i nazwane przez użytkownika. W takim przypadku dokumenty bez tytułu są automatycznie zapisywane ~/Library/Autosave Information. Ponadto NSDocumentzapisuje wcześniejsze wersje dokumentów w innym miejscu, zapewniając użytkownikowi dostęp do poprzednich wersji.

Część z napisem „Ponadto NSDocumentzapisuje wcześniejsze wersje dokumentów w innym miejscu” odnosi się do ukrytego .DocumentRevisions-V100folderu, który zakładam.

Jeśli więc masz nowy dokument wystarczająco długo otwarty, aby mógł zostać zapisany automatycznie więcej niż jeden raz, wszystko to powinno oznaczać, że najnowsza wersja jest przechowywana w pliku, ~/Library/Autosave Informationpodczas gdy wcześniejsze wersje były przechowywane w .DocumentRevisions-V100folderze (w katalogu głównym dysk, na którym znajduje się folder domowy).

Uwaga dodatkowa: nie zastanawiam się, czy pliki ~/Library/Autosave Informationzostaną automatycznie usunięte w pewnym momencie, aby uniknąć gromadzenia tego typu szybkich dokumentów TextEdit, których nie zamierzałeś zapisać. Biblioteka nie jest folderem, do którego niedoświadczeni użytkownicy powinni się włamać; i o ile rozumiem, Lion teraz nawet domyślnie to ukrywa. Zakładam, że jego zawartość również nie pojawia się w Spotlight. Jeśli pliki nie zostaną automatycznie usunięte, folder Desktop lub Documents wydaje się być lepszym miejscem do automatycznego zapisywania.

Rinzwind
źródło
Ciekawy. W ~/Library/Autosave Informationznajdę nic dotyczącą TextEdit, ale w tej aplikacji mam liczne Untitled ... oknami, które CV. Może warto poszukać odpowiedzi w / dookoła w części Czy mogę zmienić częstotliwość zapisywania plików przez funkcję „Wersje” Lion'a? .
Graham Perrin
Ważne jest to, o czym mówi tylda ~/Library/Autosave Information. W przypadku zwykłych aplikacji jest to folder domowy użytkownika. Ale w przypadku aplikacji w trybie piaskownicy (np. TextEdit) jest to w rzeczywistości ~/Library/Containers/com.company.AppIdentifier/Dataefekt końcowy w przypadku TextEdit:~/Library/Containers/com.apple.TextEdit/Data/Library/Autosave Information
Mike Abdullah
3

Wygląda na to, że lokalizacja niezatytułowanych, niezapisanych plików różni się w zależności od aplikacji. Użyj reflektora, aby znaleźć niezapisany plik tymczasowy, niezależnie od tego, której aplikacji z funkcją automatycznego zapisu użyłeś do jego utworzenia.

  1. Uruchom aplikację obsługującą automatyczne zapisywanie
  2. Przejdź do okna bez tytułu dokumentu, który chcesz zlokalizować w systemie plików
  3. Dodaj wyraźny ciąg (np. Zyzyx)
  4. Zamknij aplikację
  5. W centrum uwagi (polecenie + spacja) wpisz zyzyx
  6. Twój zmodyfikowany plik powinien się pojawić. Najedź na nią myszką, aby zobaczyć podgląd. Polecenie kliknij plik, aby przejść do załączającego folderu w Finderze.
Adam Tauen
źródło
Niesamowite wykorzystanie reflektora! Jakie lokalizacje ~/Library/Containersnie odkryłeś?
bmike
Keynote, Numbers, Pages: ~ / Library / Autosave \ Information
Adam Tauen
0

Znalazłem moje pliki, wykonując kopię zapasową TM i udało mi się odzyskać niektóre z niezapisanych zmian (ale nie tych, których szukałem). Znalazłem pliki w folderze ~ / Library / Containers / com.apple.TextEdit / Data / Library / Autosave Information / folder .. Tak więc dzięki i kopia zapasowa TM może być pomocna dla niektórych ..

Little T.
źródło
Zostało to już wspomniane w komentarzu 1 rok temu.
guwac