#!/bin/sh -e test -d files/ || { >&2 echo "Not in dotfiles root" exit 1 } for arg in $@; do arg="$(realpath "$arg")" file="${arg#"$HOME"}" test "$arg" != "$file" || { >&2 echo "$f is not in $HOME" continue } mkdir -vp "files/$(dirname "$file")" mv -iv "$arg" "files/$file" ln -vfs "$(realpath "files/$file")" "$arg" done