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 https://sourceforge.net/p/bibdesk/mailman/message/21420575/ It adds a Local-File field to the BibTeX file with the relative path of the referenced file.