Pseudocódigo
ln -s $HOME/file $HOME/Documents/ $HOME/Desktop/
donde quiero crear un enlace simbólico desde el origen a dos destinos. Probablemente moreutils
y pee
.
¿Cómo puedes crear muchos enlaces simbólicos a partir de una fuente?
Pseudocódigo
ln -s $HOME/file $HOME/Documents/ $HOME/Desktop/
donde quiero crear un enlace simbólico desde el origen a dos destinos. Probablemente moreutils
y pee
.
¿Cómo puedes crear muchos enlaces simbólicos a partir de una fuente?
Respuestas:
No puede hacer esto con una sola invocación de ln
, pero puede recorrer todos los destinos necesarios:
$ for i in "$HOME/Documents/" "$HOME/Desktop/"; do ln -s "$HOME/file" "$i"; done
Si tienes gnu parallel
puedes probar con
parallel ln -s /path/file {} ::: /path/dest1 /path/dest2 /path/dest3
o, para vincular múltiples objetivos a (los mismos) múltiples destinos
parallel ln -s {1} {2} ::: /path/file1 /path/file2 ::: /path/dest1 /path/dest2
parallel
comando desde el parallel
paquete y no desde el moreutils
.
No es menos detallado que dos ln -s
invocaciones separadas :
echo $HOME/Documents/ $HOME/Desktop/ | xargs -n 1 ln -s $HOME/file
pero eso solo funciona para rutas absolutas (porque los enlaces simbólicos se interpretan en relación con su directorio principal, a menos que sean absolutos).
(El costo relativo disminuye, por supuesto, a medida que aumenta el número de enlaces. Además, este fragmento se basa en el hecho de que $HOME
no contiene espacios, pestañas o líneas nuevas).