Este comando
env name=value name2=value2 program and args
executa o comando program and args com um ambiente formado pela extensão do ambiente atual com as variáveis de ambiente e valores designados por name=value e name2=value2 . Se você não incluir argumentos como name=value , o ambiente atual será transmitido sem modificações.
A principal coisa que acontece com relação aos aliases é que env é um comando externo, portanto, não tem "conhecimento" de aliases: aliases são uma construção de shell que não fazem parte do processo normal modelar e não ter impacto em programas que são executados diretamente por programas não-shell (como env ). env simplesmente passa o program and arguments para uma chamada exec (como execvp , que pesquisará o PATH por program ).
Basicamente, usar env como esta é uma maneira (principalmente) independente de shell de evitar aliases, funções de shell, comandos internos do shell e quaisquer outros bits de funcionalidade do shell que possam substituir ou substituir comandos argumentos de posição (ou seja, nomes de programas) - a menos que, é claro, env seja um alias ou uma função shell! Se você estiver preocupado com env ser um alias, poderá soletrar o caminho completo (por exemplo, /usr/bin/env , embora possa variar).