Come ripristinare manualmente i file di stato salvati del terminale?

0

Il mio MBR si blocca abbastanza spesso. Normalmente ho più finestre di terminale e in genere vengono ripristinate dopo un arresto anomalo.

Tuttavia da un po 'di tempo non sono stati ripristinati, quindi per quel motivo stavo facendo il backup ogni ora (in cron, non in Time Machine) per eseguire il backup dell'intero ~/Library/Saved Application State incluso com.apple.Terminal.savedState .

Tuttavia, quando ho sostituito la mia cartella savedState (1. rimuovendo quella vecchia, 2. usando un diverso tipo di terminale) ed eseguo Terminal - semplicemente non funziona come previsto (come sembra non caricare i file di stato).

C'è qualcosa che mi manca? Devo fare qualcosa in più in modo che Terminal possa riconoscere i suoi file di stato o semplicemente il backup di più cartelle per mantenere gli stati della finestra al sicuro?

La cartella di backup è composta da data.data (48M), windows.plist (vuoto) e window_1.data - window_56.data file (totale 55M).

    
posta kenorb 23.07.2015 - 16:57
fonte

1 risposta

0

Sembra che il windows.plist sia stato danneggiato durante il backup, in quanto è vuoto.

Il terminale ripristina correttamente quando si esegue il seguente test:

  1. Esegui terminale.
  2. Scrivi qualcosa come: echo test 1 .
  3. Elimina esplicitamente il terminale, ad esempio killall Terminal .
  4. Esegui di nuovo, dovrebbe avere il messaggio / stato precedente.
  5. Rimuovendo i file e ripristinandoli, avrà lo stesso stato.

Il file .plist danneggiato può essere riscritto manualmente dai seguenti passaggi di hacky:

  1. Converti plist nella sua rappresentazione XML (Terminal lo riconoscerà comunque):

    plutil  -convert xml1 -o windows.plist windows.plist
    
  2. Modifica il file in modo che corrisponda all'ID di Windows ( NSWindowID ) ai file appropriati. Oppure crea quante nuove finestre manualmente per avere gli stessi file, uccidi il terminale, sostituisci solo i file .data della finestra e riesegui di nuovo.

    Tuttavia, se i file di dati non sono incoerenti con il file Plist, il Terminale ripristinerà la sessione predefinita sovrascrivendo i file.

risposta data 23.07.2015 - 17:42
fonte

Leggi altre domande sui tag