Because bash has the location of gmake
as being somewhere else in its hash lookup table.
# list the path to the binary that invoking 'gmake' will call hash -t gmake # have bash forget the mapping for 'gmake' hash -d gmake # have bash remember the correct mapping for 'gmake' hash -p /usr/local/bin/gmake gmake # or just gmake