quiero enlazar (ln -s) todos los archivos que se encuentran en/mnt/usr/lib/en/usr/lib/LINUX: Enlace todos los archivos de uno a otro directorio
Hay un montón de archivos, ¿Cómo hacerlo rápido? :)
quiero enlazar (ln -s) todos los archivos que se encuentran en/mnt/usr/lib/en/usr/lib/LINUX: Enlace todos los archivos de uno a otro directorio
Hay un montón de archivos, ¿Cómo hacerlo rápido? :)
ln -s /mnt/usr/lib/* /usr/lib/
Supongo que esto pertenece al superusuario, sin embargo.
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 la forma más corta. – Cascabel
Tienes razón. Pero las bibliotecas no están ocultas por lo general. En cualquier caso, los archivos dotfiles están involucrados, su solución es más útil. – flokra
¿señalará la otra carpeta permanentemente? – nmkyuppie
ln -s/mnt/usr/lib/*/usr/lib/
con las soluciones publicadas no vincular los archivos ocultos. 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 sólo 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:
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 se han activado los englobamientos extendidos en bash. Combina todo comenzando con un punto, seguido de algo que no sea nada u otro punto (es decir, excluye '. /' Y '../'): 'ln -s/mnt/usr/lib /.! (|.) */usr/lib' – Cascabel
GNU cp
tiene una opción para crear enlaces simbólicos en lugar de copiar.
cp -rs /mnt/usr/lib /usr/
Nota esto es una extensión de GNU no se encuentra in POSIX cp
.
Su directorio actual debe ser/usr/para hacer un enlace simbólico de esta manera –
@caf Si el destino es una carpeta existente, entonces la carpeta lib se crea dentro de/usr/folder –
¿Cuántos archivos son "muchos" y qué tan rápido los considera "rápidos"? –
Esto es 50:50 si cabría "serverfault" o "superuser", pero no es programación, entonces no para stackoverflow. –