J'essaie de trouver le moyen le plus sûr de déplacer des données entre deux disques, conçu pour gérer les pires circonstances possibles. Par exemple, si vous essayez de déplacer les seules copies existantes des photos de la naissance de votre enfant alors qu'un singe fou erre dans les couloirs et risque de tirer le cordon d'alimentation de votre Mac et/ou des disques externes à tout moment.
Notez qu'il existe un question similaire pour la synchronisation mais je demande spécifiquement déménagement ce qui est un problème différent, car (entre autres raisons) vous devez être capable de dire quels fichiers ont été déplacés et lesquels ne l'ont pas été. Vous devez également tenir compte de la possibilité que certains fichiers aient été copiés vers la destination prévue mais pas supprimés de la source.
Cette solution ne doit pas nécessairement utiliser l'interface graphique. En fait, je trouve le Terminal réconfortant. Cela ne me dérange pas d'installer de nouveaux programmes (surtout s'ils sont disponibles par le biais de brew
). La seule exigence est que la solution soit compatible avec Mac OS X 10.8.
Voici la solution de flux de travail que j'ai en tête :
-
cp
(copie) des fichiers (si nécessaire) - les fichiers de checksum (soit après la copie, soit si une copie existante du fichier est trouvée)
- Déplacer le fichier original vers la corbeille (pas
rm
!) après qu'un fichier ait été déplacé vers un nouvel emplacement
Plus précisément :
-
L'utilisateur spécifie où les fichiers doivent être déplacés à (dossier cible/destination). Appelez-le
$DEST
(Cela serait similaire à la--target-directory
à GNUmv
-
L'utilisateur spécifie les fichiers/dossiers qui doivent être déplacés dans le dossier de l'utilisateur.
$DEST
. Appelez cela$INPUT
-
script chercherait ensuite chaque fichier/dossier de
$INPUT
sur$DEST
. -
Si le fichier/dossier est trouvé sur
$DEST
puis le compare à$INPUT
copie. -
Si la somme de contrôle correspond, déplacez
$INPUT
copie à la poubelle. -
Si la somme de contrôle ne correspond pas, remplacez
$DEST
copie avec$INPUT
Note : bien que je me soucie de permissions (techniquement, je me soucie de l'"exécutabilité"), je ne me soucie pas de la "propriété" car je suis le seul utilisateur de ce système local.
Avant que j'aille réinventer la roue, est-ce que quelque chose comme ça existe déjà ?
En fait, je veux avoir l'assurance qu'une bonne copie a été faite avant de supprimer l'original, sans faire une synchronisation complète entre les deux disques.