Sometimes, you have so much data that you need to look at de-duplicating it. One method for this is to use hard links.
What happens if you mess up and need to remove those hard links though?
I recently created this script which will find all files in a given directory with more than one link to it. It will then break (unlink) the hard link by copying and subsequently moving back the original file. You can then re-create your hard links (or try something else) as necessary!
#!/usr/bin/env bash
find /path/to/directory -type f -links +1 | while read link; do
original="$link"
tmp="$link.$$"
links=$(stat -c '%h' "$original")
echo -n "Unlinking $original ($links links)... "
cp -p "$original" "$tmp"
mv -f "$tmp" "$original"
echo 'done'
done