【问题标题】:How to print current working directory in psql console?如何在 psql 控制台中打印当前工作目录?
【发布时间】:2017-07-13 21:34:17
【问题描述】:

我正在尝试使用 pgAdmin 中的 psql 控制台和 sql 转储文件来恢复远程服务器上的架构。我收到以下错误:

user=> \i file.sql
file.sql: No such file or directory

由于缺少超级用户权限,我似乎无法打印目录列表。

有没有办法在 psql 控制台中识别或打印当前工作目录?默认目录是什么?

【问题讨论】:

  • psql 你可以使用\! meta-command 来执行shell命令。例如\! pwd 显示工作目录。
  • @Abelisto 有效。我觉得很傻。我通常在 linux 控制台/VM 中通过命令行 psql 工作,并忽略了我一开始在 Windows 机器上,所以我实际上需要使用 \! echo %cd% 并且默认目录是不出所料 'C:\Program Files\PostgreSQL\9.4\斌'。谢谢!
  • \! echo %cd%可以简化为\! cd

标签: postgresql psql


【解决方案1】:

输入命令\! pwd 将打印psql 中的当前工作目录。 要更改工作目录,请使用命令\cd <path>;将<path> 替换为所需的路径。例如。运行命令\cd /run/mount 会将当前工作目录更改为/run/mount。尝试将您的工作目录更改为包含您要运行的文件的目录,然后像之前一样使用\i meta 命令。一定会成功的。

【讨论】:

  • 澄清一下:\cd ... 是一个 PSQL 命令(键入 \? 以获取列表,因此 \cd /home/victoria(无感叹号), \!pwd 用于打印该目录路径,或\! ls -l 列出内容。
  • 那没用...我得到postgres-# \! pwd 'pwd' is not recognized as an internal or external command, operable program or batch file.
  • 您在 Windows @user32882 上吗?我问cd 的原因是Windows 命令行等效于-nix shell 命令pwd。稍微扩展一下,Postgres \! 命令被描述为元命令,因为它告诉机器“仅此行,我想让你忘记我们在数据库中,我们会说我们的常规语言反而。”因此,\! 后面是适合您所使用的任何操作系统的常规 shell 脚本语言。 \! cd 应该将您的工作目录打印到 Windows 机器的屏幕上。
【解决方案2】:

我很震惊,两年多来没有人直接回答这个问题。每个人都认为,因为您使用的是 postgres,所以您必须运行 Linux。嗯,postgres 现在正在成为 Windows 10 上非常流行的 DBMS。

在 Windows 10 中,在 psql 命令提示符中键入“!dir”以打印当前工作目录。

要更改 Windows 10 psql 客户端中的目录,请使用“\cd /users/yourlogin”。

psql 客户端是在 Windows 上运行的 unix shell,因此它是 unix 和 dos 语法命令的混合体。

【讨论】:

【解决方案3】:

只要你使用这个命令,它就会显示你当前的工作目录

密码

【讨论】:

  • PWD 不是可以在 PSQL shell 中直接执行的命令。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-24
  • 2018-02-25
  • 1970-01-01
相关资源
最近更新 更多