I don’t know what fd does, but at a guess maybe what you’re missing is that tar includes all the files in directories you give it? So if you exclude ‘foo/bar’ but include ‘foo’ then foo/bar will be in your tar file.
What I do is basically tar cf `ls ~ | grep -v $files_to_exclude`
but if you want to exclude something that isn’t a top-level directory you’d need to get slightly more fancy.
…more fancy such as using tar -X, which works for me. I’d never actually tried it before. The ‘weird globbing’ it uses is regular expressions, which are worth learning how to use. Run
grep "$expression" $_tmpfile
where $expression is a line from your exclude file to see which files it’s going to match and exclude.