BibTeX files that were created with the BibDesk program on the Mac store links to local files as smart references, which has a lot of benefits:

To be precise, it’s a base64 encoded (keyed) archived dictionary containing a relative path and a file alias (an alias stores a full path and a file ID). It is designed to support a large range of storage procedures, as it can find a file by relative path, absolute path, and file ID (in that order). This means that you can - move/rename the .bib file (as it stores full paths) - move/rename a linked file (as it stores file IDs) - move the .bib file and linked files together (as it stores relative paths) - copy the .bib file and linked files togther, even between different machines (as it stores relative paths) (bibdesk user mailing list)

This works perfectly as long as you stay on a Mac. However, if you have to share the BibTeX file with someone who cannot run BibDesk, it may be useful to add some human-readable information as well. For this, I’ve written a small script that is an adaption of the code found at It adds a Local-File field to the BibTeX file with the relative path of the referenced file.