
Estoy intentando ejecutar un 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
Si el programa redis-cli
existe en el directorio /usr/local/bin
y ese directorio está en mi variable de ruta, ¿por qué aparece el siguiente error?
$ 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
Respuesta1
Es probable que haya un redis-cli en /usr/bin/redis-cli que ahora se ha eliminado.
Bash mantiene un hash interno de ejecutables en su ruta que no ha sido actualizado. Si vuelve a encontrar este problema, repítalo y funcionará.
hash redis-cli
Respuesta2
Parece que tienes un alias o una función de shell con ese nombre; Creo que ambos pasarían por alto su $PATH y estarían ocultos de "cuál".
Para comprobar un alias:
alias redis-cli
Para eliminar un alias si encuentra uno:
unalias redis-cli
Para comprobar una función:
declare -f redis-cli
Para eliminar una función si encuentra una:
unset -f redis-cli
Si uno de estos resulta ser el problema, entonces esos comandos solo ayudarán hasta el final de esa sesión de terminal, y tendrás que volver a ejecutarlos la próxima vez. Querrá verificar su .bashrc y .profile para ver si hay algún comando malicioso que mencione redis-cli. Si eso no funciona, es posible que estén en algún lugar de /etc.
grep redis-cli /etc