simbolico - LINUX: Enlace todos los archivos de uno a otro directorio
no se permiten enlaces fuertes para directorios (4)
ln -s / mnt / usr / lib / * / usr / lib /
Quiero vincular (ln -s) todos los archivos que están en / mnt / usr / lib / en / usr / lib /
Hay muchos archivos, ¿cómo hacerlo rápido? :)
GNU cp
tiene 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 de GNU que no se encuentra en POSIX cp
.
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 desea crear recursivamente los directorios y solo vincular los archivos (de modo que si crea un archivo dentro de un directorio, realmente está en /usr/lib
not /mnt/usr/lib
), podría 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
ln -s /mnt/usr/lib/* /usr/lib/
Supongo que esto pertenece al superusuario, sin embargo.