problema software: recuperare i dati dei contatti da Time Machine

0

Il mio Macbook Pro sotto Sierra è ora nel negozio di riparazione. Sto usando un altro MacBook Pro con Yosemite mentre la mia macchina Sierra viene riparata. Tuttavia, ho dimenticato di esportare i Contatti prima di prendere la mia macchina Sierra in questa mattina e ora i miei dati di Contatti hanno 3 anni, il che è piuttosto inutile per me. Non dovrebbe essere un problema, perché tutte le informazioni necessarie sono sulla mia Time Machine collegata a Sierra. Tuttavia, le cose non sono così semplici (almeno per me).

Come posso ora ottenere le informazioni dei miei contatti sulla macchina Yosemite dal backup Time Machine basato su Sierra? Sembra che nessuna delle soluzioni pubblicate funzioni.

    
posta David Epstein 23.02.2017 - 16:06
fonte

1 risposta

2

Aggiornamento: ho aggiornato lo script in base al feedback di @ user3439894. Lo script dovrebbe ora funzionare per la maggior parte degli utenti, a prescindere dal loro sapore.

Potresti voler esaminare una soluzione temporanea della riga di comando. Ti fornisce un comando contact <search_term> che puoi eseguire in Terminal.app per cercare i contatti.

Presumo che il tuo MBP Yosemite sia solo una soluzione temporanea mentre il tuo Sierra MBP è presso l'officina. Anche se il comando Terminale ha funzionalità limitate, potrebbe funzionare abbastanza bene affinché tu possa essere utile mentre aspetti che Sierra MacBook Pro ritorni.

L'impostazione del comando temporaneo dovrebbe richiedere non più di 10-15 minuti.

Impostazione del comando contact

  1. Apri il backup di Time Machine che contiene i dati della tua rubrica (Sierra).

  2. Nel tuo backup, cerca la cartella "${HOME}/Library/Application Support/AddressBook" , che è la cartella principale per tutti i tuoi dati di contatto.

  3. Ripristina tutta la cartella AddressBook in una posizione temporanea, ad es. g .: ${HOME}/SierraAddressBook .

  4. Verifica che l'albero ${HOME}/SierraAddressBook abbia le autorizzazioni corrette in modo da poterlo leggere senza una password di amministratore.

  5. Per maggiore sicurezza, crea una copia di backup del tuo file ${HOME}/.bash_profile .

  6. Apri il file ${HOME}/.bash_profile in un editor di testo a tua scelta.

  7. aggiungi temporaneamente a .bash_profile le seguenti righe:

(Nota che per alcune di queste righe, l'indentazione è importante, prova a non modificare il rientro in nessuna di quelle linee, anche se sembra un po 'fuori posto.)

contact() {
  # We assume "${HOME}/Library/Application Support/AddressBook"
  # has been restored to this directory from a TM backup.
  local contacts_base_dir="${HOME}/SierraAddressBook"

  local search_term="$1"
  local sql_code="$(cat << EOF
.mode column
      SELECT
        TRIM(       IFNULL(R.ZFIRSTNAME, '')
          || ' ' || IFNULL(R.ZLASTNAME, '')
          || ' ' || IFNULL(R.ZORGANIZATION, '')) NAME,
        'created ' || date('2001-01-01', ZCREATIONDATE
          || ' seconds', 'localtime') CREATED,
        'modified ' || date('2001-01-01', ZMODIFICATIONDATE
          || ' seconds', 'localtime') MODIFIED,
        GROUP_CONCAT(DISTINCT TRIM(IFNULL(E.ZLABEL, ''),
          '! _$<>') || ' ' || IFNULL(E.ZADDRESSNORMALIZED, ''))
          EMAIL,
        GROUP_CONCAT(DISTINCT TRIM(IFNULL(P.ZLABEL, ''),
          '! _$<>') || ' ' || IFNULL(P.ZFULLNUMBER, ''))
          PHONE
      FROM
        ZABCDRECORD R
      LEFT JOIN
        ZABCDEMAILADDRESS E ON E.ZOWNER = R.Z_PK,
        ZABCDPHONENUMBER P ON P.ZOWNER = R.Z_PK
      WHERE
        NAME LIKE '%${search_term}%'
      GROUP BY
        R.Z_PK
      ORDER BY
        NAME;
EOF
    )"

  export sql_code
  find "${contacts_base_dir}" -regex '.*/AddressBook-[^/]*\.abcddb$' \
    -exec bash -c "/usr/bin/sqlite3 '{}' <<< \"\${sql_code}\"" \;
}

export -f contact
  1. Salva le tue modifiche in .bash_profile .

  2. Apri Terminal.app.

  3. Apri una nuova finestra di terminale.

Uso

Esegui il comando contact seguito dal termine di ricerca nel Terminale. Ad esempio:

$ contact "Bella Napoli"

Bella Napoli  created 2013-10-12  modified 2015-05-29              Home +49 931 51706

$ contact IKEA

IKEA Frankfurt  created 2013-10-12  modified 2013-10-12              Work 0180 5 353435

$ contact Neptun

Hotel Neptun  created 2013-10-12  modified 2013-10-12  Work [email protected]
Work +49 381 777-0,WorkFAX +49 381 54023

$ contact

<lists all your contacts>

Avvertimenti

  • Il termine di ricerca si applica solo al nome, al cognome e al nome dell'organizzazione.
  • Il termine di ricerca è case sensitive.
  • Il termine di ricerca non può contenere spazi o determinati segni di punteggiatura, a meno che non sia racchiuso tra virgolette singole o doppie appropriate.
  • Per cercare per nome completo, utilizza l'ordine corretto: <first_name> <last_name> <organization_name>
  • I termini di ricerca possono anche essere sottostringhe di nomi.
  • Non sostengo nessuna delle società e dei loro prodotti e servizi che ho dato nell'esempio. Li ho usati perché non posso rivelare dati personali per ovvi motivi. Inoltre, ero troppo pigro per aggiungere dati fasulli alla mia rubrica personale.
  • Ho testato lo script solo su El Capitan ma dovrebbe funzionare su Yosemite, anche se combinato con i dati della rubrica di Sierra.
  • Se riscontri problemi, ti invitiamo a lasciare un commento qui sotto.
risposta data 23.02.2017 - 18:54
fonte

Leggi altre domande sui tag