install.fairie/dotfiles/.local/bin/squash-symlink
2022-09-24 15:35:15 +00:00

23 lines
470 B
Bash

#!/usr/bin/env bash
# Example: find . -type l -exec /path/tos/script {} +
set -e
for link; do
test -h "$link" || continue
dir=$(dirname "$link")
reltarget=$(readlink "$link")
case $reltarget in
/*) abstarget=$reltarget;;
*) abstarget=$dir/$reltarget;;
esac
rm -fv "$link"
cp -afv "$abstarget" "$link" || {
# on failure, restore the symlink
rm -rfv "$link"
ln -sfv "$reltarget" "$link"
}
done