Aliases vivem apenas no shell que os definiu, e system
inicia um novo shell. Esse shell não lerá ~/.bashrc
ou outros arquivos nos quais os aliases são normalmente definidos: somente shells interativos. Alguns shells, mas não todos, lêem outro arquivo, mas existe uma maneira independente de utilizar esse shell.
A pesquisa de comando do shell tenta os seguintes elementos nesta ordem:
- Aliases - não.
- Funções - não, pelo mesmo motivo.
- Builtins - não.
- Comandos no
PATH
- tem que ser isso por padrão.
Portanto, trabalhe para garantir que a pesquisa de ls
em $PATH
ative o programa cat
.