我正在尝试备份一个 postgresql 数据库,我想使用 pg_dump
命令。
我试过了:
psql -U postgres
postgres-# pg_dump test > backup.sql
但是我不知道输出文件去哪里了。
任何帮助将不胜感激
最佳答案
我来晚了,但我觉得没有一个答案是真正正确的。大多数似乎暗示 pg_dump
在某处写入文件。它没有。 您正在将输出发送到文件,您告诉 shell 将该文件写入何处。
在您的示例 pg_dump test > backup.sql
中,它使用 plain
或 SQL 格式,pg_dump
命令不在任何地方存储任何文件。它只是将输出发送到 STDOUT
,这通常是您的屏幕,然后就完成了。
但在您的命令中,您还告诉您的 shell(终端、命令提示符等)将 STDOUT 重定向到一个文件。这与 pg_dump
无关,而是 Bash 或 cmd.exe 等 shell 的标准功能。
您使用 >
将 STDOUT 重定向到文件而不是屏幕。你给了文件名:“backup.sql”。由于您没有指定任何路径,该文件将位于您的当前目录中。这可能是您的主目录,除非您执行了 cd ...
到其他目录。
在 pg_dump
的特殊情况下,您还可以使用 -f some_file
option 来替代 >/path/to/some_file
shell 重定向:
-f file
--file=fileSend output to the specified file. This parameter can be omitted for file based output formats, in which case the standard output is used.
因此您的命令可能是 pg_dump test -f backup.sql
,要求 pg_dump 直接写入该文件。
但在任何情况下,您都提供文件名,如果您不指定路径,则文件会创建在您的当前目录中。如果您的提示尚未显示您的当前目录,您可以在 Unix 上使用 pwd
命令,在 Windows 中使用 cd
命令来显示它。
关于database - postgresql pg_dump 的输出去哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24930923/