How do I find out where brew links end up?

brew link puts symlinks all over the place. How do I find out where, for a particular package?

For example, I have cairo installed via brew. brew list cairo shows me a list of installed files. When I link cairo, brew creates symlinks.

$ brew link cairo                                          
Linking /usr/local/Cellar/cairo/1.14.0... 28 symlinks created

How do I find out where those symlinks are?


Solution 1:

symlinks are typically in /usr/local/ and is defined as by brew --prefix. To see where the app symlinks to (using wget as an example),

$ brew link wget --dry-run
Warning: Already linked: /usr/local/Cellar/wget/1.16.1
To relink: brew unlink wget && brew link wget

According to the brew man page:

If  --dry-run or -n is passed, Homebrew will list all files which would be linked or which would be deleted by brew link --overwrite, but will not actually link or delete any files.

To see where all of the files are located, use the list [formula] --verbose option like so

$ brew list wget --verbose
/usr/local/Cellar/wget/1.16.1/AUTHORS
/usr/local/Cellar/wget/1.16.1/bin/wget
/usr/local/Cellar/wget/1.16.1/ChangeLog
/usr/local/Cellar/wget/1.16.1/COPYING
/usr/local/Cellar/wget/1.16.1/INSTALL_RECEIPT.json
/usr/local/Cellar/wget/1.16.1/NEWS
/usr/local/Cellar/wget/1.16.1/README
/usr/local/Cellar/wget/1.16.1/share/info/wget.info
/usr/local/Cellar/wget/1.16.1/share/man/man1/wget.1

Solution 2:

In the case the package is already linked you can list existing links:

brew unlink <formulae> --dry-run

To get more info about the links:

brew unlink <formulae> --dry-run | xargs ls -l