Una pequeña nota, es que podría usar ln en ambas ocasiones para hacer que el comando no mueva los datos (suponiendo que ambas rutas estén en el mismo sistema de archivos).
ln /some/path/file /another/path/ && ln -sf /another/path/file /some/path/
Pero supongo que desea mover el contenido de /some/path/ a otro disco y luego crear enlaces a los nuevos archivos para que "nadie" se dé cuenta.
for f in `ls /some/path/`; do ln /some/path/$f /another/path/ && ln -sf /another/path/$f /some/path; done
Envolviéndolo en una función bash:
function cpln {
for f in `ls $1`
do
ln $1/$f $2 && ln -sf $2/$f $1
done
}
Hay mi secuencia de comandos que podría usar (toma dos parámetros /alguna/ruta/archivo y /otra/ruta/):
#!/bin/bash
cp $1 $2
if [ "$?" -ne "0" ]; then
echo "Some error"
exit 1
fi
ln -sf $2/${1##*/} ${1%/*}