Une petite note est que vous pouvez utiliser ln les deux fois pour que la commande ne déplace pas réellement les données (en supposant que les deux chemins se trouvent sur le même système de fichiers).
ln /some/path/file /another/path/ && ln -sf /another/path/file /some/path/
Mais je suppose que vous voulez déplacer le contenu de /some/path/ vers un autre disque, puis créer des liens vers les nouveaux fichiers afin que "personne" ne le remarque.
for f in `ls /some/path/`; do ln /some/path/$f /another/path/ && ln -sf /another/path/$f /some/path; done
Enveloppez-le dans une fonction bash :
function cpln {
for f in `ls $1`
do
ln $1/$f $2 && ln -sf $2/$f $1
done
}
Il y a mon script que vous pouvez utiliser (prend deux paramètres /some/path/file et /another/path/ ):
#!/bin/bash
cp $1 $2
if [ "$?" -ne "0" ]; then
echo "Some error"
exit 1
fi
ln -sf $2/${1##*/} ${1%/*}