How to find package for installed file in Brew?

Just wrote this dirty function to get you the brew package name a file belongs to:

function brew_find_pkg {
    file_to_search="$@"

    for package in $(brew list); do
        brew ls $package | grep -E -q "/${file_to_search}$"
        if [ $? -eq 0 ]; then
            echo $package
            break
        fi
    done
}

Just type that in the terminal. And then to find to find the brew package a file belongs to, say the file gsed, just call the function like this

brew_find_pkg gsed

Note that the function will not work if you provide the full path of the file.


To see all files in a package:

brew ls <package>

To find the package for a file, look at the file like this:

ls -l /usr/local/bin/whatever

If it was installed by Homebrew, it will be a symlink into /usr/local/Cellar/something, so that will tell you what package it's from.

Tags:

Homebrew