将解压缩输出重定向到 wp db import

Sla*_*lam 3 mysql wordpress bash

我需要将解压缩文件的输出重定向到wp db import.

我找到了几种将 unzip 输出通过管道传输到 mysql 命令的解决方案,但它们不适用于 wp-cli。样本mysql

gzip -c foo.sql.gz | mysql [args]
Run Code Online (Sandbox Code Playgroud)

此操作失败wp db import并出现以下错误:

gzip -c foo.sql.gz | wp db import
Error: Import file missing: mydbname.sql
Run Code Online (Sandbox Code Playgroud)

问题似乎是,在没有特定导入文件的情况下,wp db import将查找具有当前数据库名称的文件。它似乎不接受管道的输出,也不接受应该是输出文件名的内容:

gzip -c foo.sql.gz | wp db import foo
Error: Import file missing: foo
Run Code Online (Sandbox Code Playgroud)

...

gzip -c foo.sql.gz | wp db import foo.sql
Error: Import file missing: foo.sql
Run Code Online (Sandbox Code Playgroud)

我对进口、出口、黑啤酒和斯汀了解不够,无法解决这个问题。由于混乱,我宁愿避免创建临时文件,而且我更愿意使用 wp-cli 而不是 mysql,因为这是一个可以在任何 Wordpress 站点上运行的 bash 脚本。我尝试过在管道的左侧使用gunzip、cat、gcat 和gzip 的各种迭代,但我怀疑问题出在管道的右侧。我也尝试过使用重定向>而不是管道|

Ema*_*ser 7

当使用 - 时,wp_db_import 从 STDIN 读取:

gzip -c -d foo.sql.gz | wp db import -
Run Code Online (Sandbox Code Playgroud)

或者尝试使用 STDIN 进行变体。