
Estou tentando executar um programaredis-cli
$ ls -lh /usr/local/bin/ | grep redis
-rwxr-xr-x 1 root root 4.2M Mar 24 19:49 redis-cli
-rwxr-xr-x 1 root root 5.6M Mar 24 19:49 redis-server
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Se o programa redis-cli
existe no diretório /usr/local/bin
e esse diretório está na minha variável de caminho, por que recebo o seguinte erro?
$ redis-cli
-bash: /usr/bin/redis-cli: No such file or directory
EDITAR
$ /usr/local/bin/redis-cli
redis 127.0.0.1:6379>
$ redis-cli
-bash: /usr/bin/redis-cli: No such file or directory
$ file /usr/local/bin/redis-cli
/usr/local/bin/redis-cli: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0x3715af7983c534d902d8dc627f9b0f1b4c8b8e80, not stripped
Responder1
Provavelmente havia um redis-cli em /usr/bin/redis-cli que agora foi excluído.
Bash mantém um hash interno de executáveis em seu caminho que não foi atualizado. Se você encontrar esse problema novamente, refaça-o e ele funcionará.
hash redis-cli
Responder2
Parece que você tem um alias ou uma função shell com esse nome; Acredito que ambos ignorariam seu $PATH e ficariam ocultos de 'qual'.
Para verificar um alias:
alias redis-cli
Para excluir um alias se você encontrar um:
unalias redis-cli
Para verificar uma função:
declare -f redis-cli
Para excluir uma função se você encontrar uma:
unset -f redis-cli
Se um deles for o problema, esses comandos só ajudarão até o final da sessão do terminal e você terá que executá-los novamente na próxima vez. Você vai querer verificar seu .bashrc e .profile para ver se há algum comando não autorizado que mencione redis-cli. Se isso não funcionar, eles podem estar em algum lugar em/etc.
grep redis-cli /etc