3 votes

Le moyen le plus sûr et le plus fiable de déplacer des fichiers du lecteur A au lecteur B.

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 :

  1. cp (copie) des fichiers (si nécessaire)
  2. les fichiers de checksum (soit après la copie, soit si une copie existante du fichier est trouvée)
  3. 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 :

  1. L'utilisateur spécifie où les fichiers doivent être déplacés à (dossier cible/destination). Appelez-le $DEST (Cela serait similaire à la --target-directory à GNU mv

  2. L'utilisateur spécifie les fichiers/dossiers qui doivent être déplacés dans le dossier de l'utilisateur. $DEST . Appelez cela $INPUT

  3. script chercherait ensuite chaque fichier/dossier de $INPUT sur $DEST .

  4. Si le fichier/dossier est trouvé sur $DEST puis le compare à $INPUT copie.

  5. Si la somme de contrôle correspond, déplacez $INPUT copie à la poubelle.

  6. 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.

5voto

kenneedham Points 92

J'utiliserais la même solution que pour la synchronisation, avec l'option donnée à rsync de supprimer les fichiers sources. Quelque chose comme ça :

rsync -azv --remove-source-files $INPUT $DEST

Comme vous l'avez mentionné, pourquoi réinventer la roue ? rsync vérifie la somme de contrôle de chaque fichier transféré pour s'assurer qu'il a été transféré correctement.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X