为什么我不能运行“psql”命令?

时间:2015-07-27 04:09:37

标签: psql

我下载了psql并试图运行它,但它没有用。它显示:

ubuntu@ip-172-31-17-155:~$ psql
-bash: /usr/bin/psql: No such file or directory

但我使用locate来搜索它存在的psql:

ubuntu@ip-172-31-17-155:~$ locate psql
/etc/alternatives/psql.1.gz
/usr/bin/psql
/usr/lib/postgresql/9.3/bin/psql
/usr/lib/x86_64-linux-gnu/odbc/libodbcpsqlS.so
/usr/share/bash-completion/completions/psql
/usr/share/man/man1/psql.1.gz
/usr/share/postgresql/9.3/psqlrc.sample
/usr/share/postgresql/9.3/man/man1/psql.1.gz
/var/lib/dpkg/alternatives/psql.1.gz
/var/lib/postgresql/.psql_history

是什么原因?

1 个答案:

答案 0 :(得分:2)

这看起来像是由Bash的路径分辨率缓存引起的。您可以通过运行来测试该理论:

 type psql

如果它返回psql is hashed (/usr/bin/psql),那确实是我们的问题。运行:

 hash -d psql

清除该缓存,然后再次尝试psql

编辑:我从https://unix.stackexchange.com/questions/5609/how-do-i-clear-bashs-cache-of-paths-to-executables

获取了上述命令