Sto cercando di trovare il modo più sicuro per spostare i dati tra due dischi, progettati per gestire le peggiori circostanze possibili. Ad esempio: se stavi cercando di spostare le uniche copie esistenti di foto di tuo figlio nato mentre una scimmia impazzita stava vagando per le sale e poteva tirare il cavo di alimentazione sul tuo Mac e / o sulle unità esterne in qualsiasi momento.
Si noti che c'è un domanda simile per la sincronizzazione , ma ti sto chiedendo specificamente di spostamento che è un problema diverso, perché (tra l'altro) devi essere in grado di dire quali file sono stati spostati e quali no. È inoltre necessario considerare la possibilità che alcuni file siano stati copiati nella destinazione prevista ma non rimossi dalla fonte.
Questa soluzione non deve utilizzare la GUI. In effetti trovo il terminale confortante. Non mi dispiace installare nuovi programmi (specialmente se disponibili tramite brew
). L'unico requisito è che la soluzione sia compatibile con Mac OS X 10.8.
Ecco la soluzione del flusso di lavoro che ho in mente:
-
cp
(copia) file (se necessario) - file di checksum (sia dopo la copia o se viene trovata una copia esistente del file)
- Sposta il file originale nel cestino (non
rm
!) dopo che un file è stato spostato nella nuova posizione
Più in particolare:
-
L'utente specifica dove spostare i file in (cartella destinazione / destinazione). Chiamalo
$DEST
(Sarebbe simile al flag--target-directory
a GNUmv
-
L'utente specifica file / cartelle che devono essere spostati in
$DEST
. Chiama quel$INPUT
-
Script cercherebbe quindi ogni file / cartella da
$INPUT
su$DEST
. -
Se il file / cartella è trovato su
$DEST
, allora checksum contro$INPUT
copy. -
Se la somma di controllo corrisponde, sposta
$INPUT
copia nel cestino. -
Se il checksum non corrisponde, sostituisci
$DEST
copia con$INPUT
Nota: mentre mi preoccupo delle autorizzazioni (tecnicamente mi interessa di "eseguibilità"), non mi interessa la "proprietà" poiché sono l'unico utente di questo sistema locale.
Prima di andare a reinventare la ruota, esiste già qualcosa del genere?
Fondamentalmente voglio la massima sicurezza possibile che sia stata creata una buona copia prima di cancellare l'originale, senza eseguire una sincronizzazione completa tra le due unità.