如果我想将file1.sql的输出保存到新文件file2.sql,我将在terminal / cmd中使用以下命令:
psql -U postgres -f file1.sql -o file2.sql
但是,如果我希望file2.sql位于另一个文件夹中怎么办?
如果我尝试执行以下命令:
psql -U postgres -f file1.sql -o New/file2.sql,
不会自动创建新文件夹,并且会显示错误消息。我必须先存在“新建”文件夹。
我需要许多输出文件和许多新文件夹。一种明显的选择是使用Python预先创建所需的文件夹,但实际上,PostgreSQL无法为我创建文件夹吗?
答案 0 :(得分:2)
使用mkdir -p
。
如果目录New
不存在,则尝试创建目录;如果目录已经存在,则不执行任何操作。&&
确保
仅当mkdir
命令成功时,您的psql命令才会运行。
mkdir -p New && psql -U postgres -f file1.sql -o New/file2.sql
如果要在psql
中运行os命令,只需在\! <command>
中使用file1.sql
选项,然后通过\o
选项输出。
\! mkdir -p New
\o New/file2.sql