Una piccola nota è che potresti usare ln entrambe le volte per fare in modo che il comando non sposti effettivamente i dati (supponendo che entrambi i percorsi si trovino sullo stesso filesystem).
ln /some/path/file /another/path/ && ln -sf /another/path/file /some/path/
Ma presumo che tu voglia spostare il contenuto di /some/path/ su un altro disco e quindi creare collegamenti ai nuovi file in modo che "nessuno" se ne accorga.
for f in `ls /some/path/`; do ln /some/path/$f /another/path/ && ln -sf /another/path/$f /some/path; done
Avvolgendolo in una funzione bash:
function cpln {
for f in `ls $1`
do
ln $1/$f $2 && ln -sf $2/$f $1
done
}
C'è il mio script che potresti usare (prende due parametri /some/path/file e /another/path/ ):
#!/bin/bash
cp $1 $2
if [ "$?" -ne "0" ]; then
echo "Some error"
exit 1
fi
ln -sf $2/${1##*/} ${1%/*}