Estoy tratando de encontrar la manera más segura de mover datos entre dos unidades, diseñado para manejar las peores circunstancias posibles. Por ejemplo: si intentaba mover las únicas copias existentes de las imágenes de su hijo que nace mientras un mono enloquecido paseaba por los pasillos y podría tirar del cable de alimentación de su Mac y / o de las unidades externas en cualquier momento.
Tenga en cuenta que hay un pregunta similar para la sincronización , pero estoy preguntando específicamente sobre mover que es un problema diferente, porque (entre otras razones) tienes que poder decir qué archivos se han movido y cuáles no. También debe tener en cuenta la posibilidad de que algunos archivos se hayan copiado al destino deseado pero no se hayan eliminado del origen.
Esta solución no tiene que utilizar la GUI. De hecho encuentro la terminal reconfortante. No me importa instalar programas nuevos (especialmente si están disponibles a través de brew
). El único requisito es que la solución sea compatible con Mac OS X 10.8.
Aquí está la solución de flujo de trabajo que tengo en mente:
-
cp
(copiar) archivos (si es necesario) - archivos de suma de comprobación (ya sea después de la copia o si se encuentra una copia existente del archivo)
- Mover el archivo original a la papelera (¡no a
rm
!) después de que un archivo se haya movido a una nueva ubicación
Más específicamente:
-
El usuario especifica dónde se deben mover los archivos a (carpeta de destino / destino). Llámelo
$DEST
(esto sería similar a la bandera--target-directory
a GNUmv
-
El usuario especifica los archivos / carpetas que deben moverse a
$DEST
. Llama a ese$INPUT
-
El script buscará cada archivo / carpeta desde
$INPUT
en$DEST
. -
Si el archivo / carpeta se encuentra en
$DEST
, cúmbielo contra$INPUT
copy. -
Si la suma de comprobación coincide, mueva
$INPUT
copy a trash. -
Si la suma de comprobación no coincide, reemplace
$DEST
copy con$INPUT
Nota: aunque me preocupan los permisos (técnicamente me importa la "ejecutabilidad"), no me importa la "propiedad" ya que soy el único usuario de este sistema local.
Antes de ir y reinventar la rueda, ¿ya existe algo como esto?
Básicamente, quiero la mayor seguridad posible de que se haya hecho una buena copia antes de eliminar el original, sin hacer una sincronización completa entre las dos unidades.