在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
我怎么能把他们挑出来呢?
1条答案
按热度按时间oxiaedzo1#
您的主要错误是没有考虑到
*
也是shell的一个特殊字符。shell将用当前目录中以
abc
开头的所有文件的名称替换abc*
,因此您的命令实际上类似于这在语法上是不正确的并且将使
pg_dump
抱怨。您必须使用单引号保护星号,以免被shell扩展:
命令行中的另一个错误是忘记了
-f abc.txt
中的-f
。