postgresql - 如何在 Postgresql 中创建一个文件夹来保存输出?
问题描述
如果我想将 file1.sql 的输出保存到新文件 file2.sql,我会在终端/cmd 中使用这个命令:
psql -U postgres -f file1.sql -o file2.sql
但是,如果我希望 file2.sql 位于不同的文件夹中怎么办?
如果我尝试这个命令:
psql -U postgres -f file1.sql -o New/file2.sql,
这不会自动创建一个新文件夹并会给出错误。新文件夹需要存在才能执行此操作。
我需要对许多输出文件和许多新文件夹进行此操作。一种明显的替代方法是使用 Python 预先创建所需的文件夹,但实际上,Postgresql 无法为我创建文件夹吗?
解决方案
使用mkdir -p
.
如果目录不存在,它将尝试创建一个目录New
,或者如果它已经存在,则不执行任何操作。&&
确保您的 psql 命令仅在mkdir
命令成功时运行。
mkdir -p New && psql -U postgres -f file1.sql -o New/file2.sql
如果你想在里面运行 os 命令 psql
,只需使用里面的\! <command>
选项file1.sql
,然后通过\o
选项输出。
\! mkdir -p New
\o New/file2.sql
推荐阅读
- linux - 使用“日期”命令转换整个列
- javascript - 为什么 redux 存储更改后连接的 React 组件不更新?
- python - NameError: name 'Address' 未定义(使用 python shell 时),但它在 models.py 中
- protractor - Protractor 无法编译 Typescript 但路径存在
- biginteger - 32-1024 位定点矢量算法与 AVX-2
- bash - 从 Linux bash 调用 Matlab 时捕获错误消息
- python - 如何获得每个问题的所有四个选项...例如,如果我打印问题,那么我如何打印该特定问题的所有四个选项
- python - 使用 os.path.join() 运行脚本时出现 TypeError
- java - ExecutorService InvokeAll 用于混合数据类型
- asp.net-core - ASP.NET Core 验证剃刀标记