Directorio de creación de UNIX que parece tener contenido de otros directorios

Directorio de creación de UNIX que parece tener contenido de otros directorios

Si tengo 2 directorios, a y b, ¿alguien puede sugerir un método conveniente para crear un directorio que parezca tener el contenido de a y b sin copiar los archivos? Por el momento, lo que he estado usando es ln -s * para crear una carga de enlaces simbólicos y luego eliminarlos cuando termine. Sin embargo, preferiría que el contenido de los subdirectorios pareciera estar fusionado, y administrar esto con el método de enlace simbólico puede necesitar algunos retoques.

Está bien si el directorio resultante es de solo lectura dada la aplicación.

Respuesta1

Puede fusionarse efectivamente con directorios conUniónFSsuperponiendo los dos directorios (llamados ramas en este contexto) en un solo punto de montaje.

Hay varias implementaciones de UnionFS;uniónfsfusiblees uno de los más simples, ya que es una aplicación (en lugar de un parche del kernel).

El sitio web contiene un enlace a su archivo. Compilar el código fuente debería ser sencillo en la mayoría de las distribuciones.

En Ubuntu, por ejemplo, basta con instalar el paquetefusible-unionfsejecutando el siguiente comando:

sudo apt-get install unionfs-fuse

Una vez instalado, puede proceder a superponer los directorios. Hay una variedad de opciones. Te explicaré brevemente los más básicos:

  • El comando

      unionfs-fuse foo:bar baz
    

    superpone el contenido de los directoriosfooybaren el directoriobaz. 1

    Esta superposición será de sólo lectura; cualquier intento de crear o modificar un archivo enbazresultará en unPermiso denegado.error. Sin embargo, aún podrás crear y modificar los archivos dentrofooybarellos mismos.

    Las colisiones se manejan de forma fija: si un archivo existe en una rama superior (foo), tendrá preferencia sobre un archivo del mismo nombre en una rama inferior (bar).

  • El comando

      union-fuse foo=RW:bar=RO baz
    

    marcasfoograbable ybar(solo lectura). Modificando archivos defooserá posible, pero modificar archivos debarno lo será. Todos los archivos recién creados enbazaparecerá enfoo.

  • El comando

      union-fuse -ocow foo=RW:bar=RO baz
    

    es similar al último comando. ElCopiar en escritoLa opción ( cow) tiene el efecto de que intentar modificar un archivo debaradentrobazresultará en una copia modificada del archivo enfoo(o cualquier otra rama grabable de nivel superior).

  • con el comando

      union-fuse foo=RW:bar=RW baz
    

    todo se puede modificar. Se crearán nuevos archivos en la rama superior (foo).

  • El comando

      union-fuse foo=RO:bar=RW baz
    

    permite modificar los archivos debaradentrobaz, pero no se pueden crear archivos nuevos.

  • El comando

      sudo umount baz
    

    Deshace el soporte de unión.

Ver también:hombre unionfs-fusible


1 bazdebe existir antes de que se ejecute este comando. Esto también se aplica a todos los demás comandos.

información relacionada