Esto no incluye archivos ocultos y vincula directorios completos. Si alguno de estos no es lo que quieres, mira mi respuesta. De lo contrario, es el camino más corto.
Cascabel
Tienes razón. Pero las bibliotecas no suelen estar ocultas. En cualquier caso, los archivos de puntos están involucrados, su solución es más útil.
1
¿Apuntará a la otra carpeta de forma permanente?
nmkyuppie
@YuPPie, supongo, simplemente crea un enlace duro a cada archivo en el directorio. (esto es lo que quería hoy, así que +1: D)
Nombre para mostrar
2
@SargeBorsch Crea enlaces simbólicos (los enlaces duros son diferentes).
jsejcksn
90
GNU cptiene una opción para crear enlaces simbólicos en lugar de copiar.
cp -rs /mnt/usr/lib /usr/
Tenga en cuenta que esta es una extensión GNU que no se encuentra en POSIXcp .
Las soluciones publicadas no vincularán ningún archivo oculto. Para incluirlos, intente esto:
cd /usr/lib
find /mnt/usr/lib -maxdepth 1 -print "%P\n" | while read file; do ln -s "/mnt/usr/lib/$file" "$file"; done
Si llegara a querer crear de forma recursiva los directorios y archivos únicos de enlace (de modo que si se crea un archivo dentro de un directorio, lo que realmente está en /usr/libno /mnt/usr/lib), usted puede hacer esto:
cd /usr/lib
find /mnt/usr/lib -mindepth 1 -depth -type d -printf "%P\n" | while read dir; do mkdir -p "$dir"; done
find /mnt/usr/lib -type f -printf "%P\n" | while read file; do ln -s "/mnt/usr/lib/$file" "$file"; done
Creo que esto también debería funcionar como una forma de comodín en archivos ocultos, si ha extendido el globbing activado en bash. Coincide con todo lo que comienza con un punto, seguido de algo distinto de nada u otro punto (es decir, excluye ./y ../):ln -s /mnt/usr/lib/.!(|.)* /usr/lib
Respuestas:
Sin embargo, supongo que esto pertenece al superusuario.
fuente
GNU
cp
tiene una opción para crear enlaces simbólicos en lugar de copiar.Tenga en cuenta que esta es una extensión GNU que no se encuentra en POSIX
cp
.fuente
fuente
Las soluciones publicadas no vincularán ningún archivo oculto. Para incluirlos, intente esto:
Si llegara a querer crear de forma recursiva los directorios y archivos únicos de enlace (de modo que si se crea un archivo dentro de un directorio, lo que realmente está en
/usr/lib
no/mnt/usr/lib
), usted puede hacer esto:fuente
./
y../
):ln -s /mnt/usr/lib/.!(|.)* /usr/lib