aboutsummaryrefslogtreecommitdiff
path: root/mvln
blob: ec4c359b98406348583fccdcd196a02f89c65f03 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/bin/bash
#
# Move a file but keep a symlink behind.
#
# See http://www.linuxquestions.org/questions/linux-newbie-8/script-to-move-old-files-create-symbolic-link-728618/
#     http://lifehacker.com/5270634/move-files-without-breaking-stuff
#     https://stackoverflow.com/questions/9251818/bash-move-file-directory-and-create-a-link-of-it
#     http://serverfault.com/questions/8108/move-a-file-and-leave-a-soft-link-behind

# Parameters
BASE="$(basename "$1")"
ORIG="$(dirname "$1")"
DEST="$2"

# Check
if [ ! -e "$ORIG/$BASE" ]; then
  echo "File not found: $ORIG/$BASE"
  exit 1
fi

# Proceed
mkdir -p "$DEST"
mv "$ORIG/$BASE" "$DEST" && ln -s "$DEST/$BASE" "$ORIG/$BASE"