Eine kleine Anmerkung ist, dass Sie ln beide Male verwenden könnten, um den Befehl dazu zu bringen, die Daten nicht wirklich zu verschieben (vorausgesetzt, beide Pfade befinden sich auf demselben Dateisystem).
ln /some/path/file /another/path/ && ln -sf /another/path/file /some/path/
Aber ich nehme an, dass Sie den Inhalt von /some/path/ auf eine andere Festplatte verschieben und dann Links zu den neuen Dateien erstellen möchten, damit "niemand" es merkt.
for f in `ls /some/path/`; do ln /some/path/$f /another/path/ && ln -sf /another/path/$f /some/path; done
In eine Bash-Funktion packen:
function cpln {
for f in `ls $1`
do
ln $1/$f $2 && ln -sf $2/$f $1
done
}
Theres my script you could use (nimmt zwei Parameter /some/path/file und /another/path/ ):
#!/bin/bash
cp $1 $2
if [ "$?" -ne "0" ]; then
echo "Some error"
exit 1
fi
ln -sf $2/${1##*/} ${1%/*}