管道后gzip不起作用

ane*_*yzm 6 package-management gzip pipe

出于某种原因,gzip 不起作用。它给了我一个空文件

/usr/bin/mysqldump --opt -u root -ppassword database > database.sql | gzip > database.sql.gz
Run Code Online (Sandbox Code Playgroud)

database.sql 已正确创建且大小正确。

然而 database.sql.gz 只有 20kb 并且它包含一个空文件。

谢谢

Mik*_*ott 6

你的语法在这里是错误的。因为您将 mysqldump 命令的输出发送到 database.sql,所以没有任何输出可以通过管道传送到 gzip。只需删除那一点,这样你就只创建了 gzip 文件:/usr/bin/mysqldump --opt -u root -ppassword database | gzip > database.sql.gz

如果您真的想创建压缩和未压缩版本,则需要运行两个单独的命令: /usr/bin/mysqldump --opt -u root -ppassword database > database.sql ; cat database.sql | gzip > database.sql.gz

或使用 tee 拆分输出: /usr/bin/mysqldump --opt -u root -ppassword database | tee database.sql | gzip > database.sql.gz


ane*_*hep 5

尝试这个

/usr/bin/mysqldump --opt -u root -ppassword database | gzip > database.sql.gz
Run Code Online (Sandbox Code Playgroud)