varios todos subdirectorios para otro mover los listar ejemplos directorios directorio crear copiar consola comandos comando carpeta basicos archivos archivo unix symlink

unix - subdirectorios - mover todos los archivos de un directorio a otro en linux



¿Puedo enlazar varios directorios en uno? (2)

Tengo la sensación de que ya sé la respuesta a esta, pero pensé que la verificaría.

Tengo varias carpetas diferentes:

images_a/ images_b/ images_c/

¿Puedo crear algún tipo de enlace simbólico para que este nuevo directorio tenga el contenido de todos esos directorios? ¿Es este nuevo " images_all " contendría todos los archivos en images_a , images_b e images_c ?



No. Tendría que vincular simbólicamente todos los archivos individuales.

Lo que podrías hacer es crear un trabajo para ejecutar periódicamente que básicamente eliminó todos los enlaces simbólicos existentes en images_all , luego volver a crear los enlaces para todos los archivos de los otros tres directorios, pero es un poco complicado, algo así como esto :

rm -f images_all/* for i in images_[abc]/* ; do; ln -s $i images_all/$(basename $i) ; done

Tenga en cuenta que, mientras se ejecuta este trabajo, otros procesos pueden parecer que los archivos han desaparecido temporalmente.

También deberá prestar atención al caso en que exista un único nombre de archivo en dos o más de los directorios.

Volviendo a esta pregunta después de un tiempo, también se me ocurre que puede minimizar el tiempo durante el cual los archivos no están disponibles.

Si los vincula a un directorio diferente , realice operaciones mv relativamente rápidas que minimizarían el tiempo. Algo como:

mkdir images_new for i in images_[abc]/* ; do ln -s $i images_new/$(basename $i) done # These next two commands are the minimal-time switchover. mv images_all images_old mv images_new images_all rm -rf images_old

No lo he probado, por lo que cualquiera que lo implemente deberá confirmar la idoneidad o no.