Pregunta

Tengo un par de archivos idénticos almacenados en más de un lugar en mi disco duro. Calculo que puede ahorrar una gran cantidad de espacio en disco duro vinculándolos a apuntar en el mismo archivo. Estoy un poco preocupado por los efectos secundarios posiblemente desastrosas.

supongo que no afecta a los permisos, como los que se almacenan en los respectivos directorios, al igual que el nombre del archivo, ¿verdad? (Actualización: Al parecer, supuse mal, los permisos se comparten, como Carl demuestra en su respuesta)

La mayor preocupación es los cambios en un archivo sin darse cuenta también el cambio de los otros archivos. Sólo lectura archivos deben ser seguros entonces. Y los archivos que se pueden cambiar también están bien, si en lugar de actualizar en el archivo existente, un nuevo archivo se escribe. Creo que la mayoría de las aplicaciones funcionan de esa manera, pero probablemente no todos.

¿Hay algo más a tener en cuenta?

Estoy en OS X / HFS +.

¿Fue útil?

Solución

No utilice los enlaces duros si desea que los cambios en un archivo no se refleje en otros archivos. Ese es el punto de enlaces duros - múltiples entradas de directorio para el mismo archivo (los mismos bloques en el disco). El cambio de permisos en uno de los nombres de un enlace duro les cambia tanto:

$ touch file
$ ln file link
$ ls -l
total 0
-rw-r--r--  2 owner group  0 Nov 11 16:44 file
-rw-r--r--  2 owner group  0 Nov 11 16:44 link
$ chmod 444 file
$ ls -l
total 0
-r--r--r--  2 owner group  0 Nov 11 16:44 file
-r--r--r--  2 owner group  0 Nov 11 16:44 link

Desde la página del ln:

  

Un enlace físico a un archivo no se distingue de la entrada de directorio original; cualquier cambio en un archivo son efectivamente independiente del nombre utilizado para hacer referencia al archivo.

Otros consejos

Escribí un pequeño script para hacer precisamente esto. Sólo estaría preocupada acerca de los permisos, si la copia de seguridad ocupaba múltiples usuarios o archivos del sistema.

Yo tenía un montón de copias de seguridad antiguas en CD y DVD, muchos de los cuales tenían una gran cantidad de datos redundantes en ellos. En lugar de tamizar a través de toda esa información y eliminar los duplicados, tomé la ruta máquina del tiempo e hice enlaces duros entre todos los archivos que coinciden con el contenido de verdad (a juego, me tomó una suma de comprobación SHA1 de todos ellos).

Ahora todos mis volúmenes de copia de seguridad se parecen a como lo harían de otra manera y la mayoría de los archivos redundantes son historia. El único contratiempo es que una gran cantidad de archivos multimedia tienda de metadatos en el contenido del archivo de modo que cada versión es ligeramente diferente. Ver este artículo para el código Python. No garantías !!!

Asegúrese de hacer mdimport your_backup_dir/ después: Buscador de Spotlight y dan un poco nervioso cuando haces manipulaciones de datos masivos. He-des duplicado mi carpeta de copia de seguridad de 240 GB de esta manera y que nos llevó unos 45 minutos.

Tenga en cuenta también, la mayoría de las aplicaciones OSX romper sus enlaces duros y guardar en un nuevo nodo-i, la mayoría de aplicaciones de UNIX'y probablemente preservar los enlaces duros (excepto emacs, lo que escucho).

enlaces duros no son generalmente una buena práctica. lisos viejos enlaces simbólicos en software / (ln -s) deben servir igual de bien.

Si su objetivo principal es "Tiempo dedupe Máquina copias de seguridad", como usted menciona en uno de los comentarios, y luego otra opción que evita algunas de sus preocupaciones sería eliminar los duplicados de la máquina de tiempo utilizando la preferencias de Time Machine . Puede excluir a nivel de directorio o archivo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top