postgresql 在Postgres中是否可以只提取pg_dump中以特定名称开头的表?

sg24os4d  于 2023-01-30  发布在  PostgreSQL
关注(0)|答案(1)|浏览(116)

在postgres DB中的数百个表中,只找到了以特定名称开头的表的结构转储。
示例
表的名称

abc

abc_hello

abc_hi

def

def_hello

def_hi

如果您认为有,我只想转储以abc* 开头的表。
pg_dump abc.txt -Fp -t abc* -s DBName
但是,由于表的数量太大,它没有被识别。它回答说,
pg_dump: error: too many command-line arguments (first is "DBName")
但此命令工作正常
pg_dump abc_hello.txt -Fp -t abc_hello -s DBName
我怎么能把他们挑出来呢?

oxiaedzo

oxiaedzo1#

您的主要错误是没有考虑到*也是shell的一个特殊字符。

pg_dump -t abc* mydatabase

shell将用当前目录中以abc开头的所有文件的名称替换abc*,因此您的命令实际上类似于

pg_dump -t abcfile1 abcfile2 abcfile3 mydatabase

这在语法上是不正确的并且将使pg_dump抱怨。
您必须使用单引号保护星号,以免被shell扩展:

pg_dump -t 'abc*' mydatabase

命令行中的另一个错误是忘记了-f abc.txt中的-f

相关问题