GNU/Linux >> Tutoriales Linux >  >> Linux

¿Crear por la fuerza enlaces duros de directorio?

Entiendo el razonamiento por el cual casi todas las versiones de Unix no permiten la vinculación directa de directorios (de hecho, HFS+ en OS X es el único que conozco, pero incluso eso no es fácil de hacerlo usted mismo). Sin embargo, en teoría, todos los sistemas de archivos admiten directorios con enlaces fijos, ya que todos los directorios contienen al menos un enlace duro adicional a sí mismos, además de enlaces duros adicionales en subdirectorios que apuntan a su padre.

Ahora, me doy cuenta de que la vinculación dura puede ser peligrosa si se usa incorrectamente, ya que puede crear estructuras cíclicas que pocos programas verificarán y, por lo tanto, se atascarán en un bucle infinito. Sin embargo, esperaba usar enlaces duros para crear una copia de seguridad al estilo de Time Machine que pueda funcionar para cualquier sistema Unix. No creo que este tipo de estructura sea peligrosa, ya que los enlaces simplemente apuntan a copias de seguridad anteriores; no debe haber riesgo de vinculación cíclica. En mi caso, actualmente solo estoy usando rsync para crear enlaces duros a archivos existentes, pero esto es lento y derrochador, particularmente con copias de seguridad muy grandes y especialmente si ya sé qué directorios no han cambiado.

Con esto en mente, ¿hay alguna forma de forzar la creación de enlaces duros de directorio en variantes de Unix? ln presumiblemente no es bueno ya que este es el lugar en el que muchas versiones de Unix imponen sus restricciones para evitar directorios de enlaces duros y ln las versiones que admiten directorios con enlaces fijos indican específicamente que es probable que la operación falle. Pero para alguien que conoce los riesgos y sabe que su caso de uso es seguro, ¿hay alguna forma de crear el enlace de todos modos? Idealmente para un script de shell, pero si necesito compilar un pequeño programa para hacerlo, supongo que podría hacerlo.

Respuesta aceptada:

No hagas esto. Si desea tener un sistema de respaldo que use enlaces duros para ahorrar espacio, es mejor usar rsync con --link-dest , que vinculará archivos apropiadamente para ahorrar espacio, sin causar los problemas que esto causa (es decir, la vinculación fuerte entre directorios es una corrupción del sistema de archivos y hará que informe recuentos de inodos incorrectos + fsck fallido + generalmente tiene una semántica desconocida debido a que no es un DAG ).


Linux
  1. Cómo crear enlaces duros y simbólicos en Linux

  2. 5 ejemplos para crear múltiples directorios en Linux

  3. Cómo cambiar el nombre de un directorio en Linux

  4. Cómo crear enlaces blandos y duros en Linux

  5. Crear un enlace simbólico de directorio en Ubuntu

Crear y configurar directorios setgid para colaboración:preparación de objetivos de RHCSA

Cómo crear directorios en Linux (comando mkdir)

Cree accesos directos a los directorios de uso frecuente en Linux

El comando ln en Linux:crear enlaces blandos y duros

¿Cómo crear comandos personalizados en Unix/Linux?

crear directorios de inicio después de crear usuarios