database - postgresql pg_dump 的输出去哪里

标签 database postgresql command-line backup pg-dump

我正在尝试备份一个 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=file

Send 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/

相关文章:

database - 你应该如何从源代码控制构建你的数据库?

C# 从 NpgSqlException 中捕获重复键的值

c# - 从命令行发布 WPF 项目

command-line - Raspberry PI - 使用 GMAIL smtp 服务器从命令行发送邮件

php - 在python中对以整数开头的json数组进行排序

database - Sharepoint 2010 数据库 - 如何从 SQL 2012 AlwaysOn 迁移到独立 SQL 2012

linux - 安装的 postgresql 版本过多 : How to start only a chosen postgresql version or remove the unneeded ones? 需要的端口是标准端口 "5432"

Django QuerySet 切片返回意外结果

使用命令行参数执行另一个程序的 C++ 程序

php - 更新先前使用 MYSQL 和 PHP 选择的一组行