gzip не работает после конвейера

По какой-то причине gzip не работает. Это дает мне пустой файл

/usr/bin/mysqldump --opt -u root -ppassword database > database.sql | gzip > database.sql.gz

database.sql правильно создан и имеет правильный размер.

Однако database.sql.gz занимает всего 20 КБ и содержит пустой файл.

, благодаря

6
задан 4 January 2011 в 19:44

5 ответов

Проблема в том, что вы пытаетесь перенаправить вывод как в файл, так и в канал.

Если вы хотите сжать вывод команды в файл, вы должны использовать:

/usr/bin/mysqldump --opt -u root -ppassword database | gzip > database.sql.gz
0
ответ дан 4 January 2011 в 19:44

Конвейер означает, что вы НЕ пишете в файл, поэтому просто удалите «> database.sql» из своей строки.

Вместо этого попробуйте что-то вроде этого:

/ usr / bin / mysqldump --opt -u root -ppassword database | gzip> database.sql.gz

0
ответ дан 4 January 2011 в 19:44

Попробуйте это

/usr/bin/mysqldump --opt -u root -ppassword database | gzip > database.sql.gz
0
ответ дан 4 January 2011 в 19:44

Потому что после создания файла sql database.sql больше нет выходных данных. Он не продолжается, поэтому канал не получает никаких данных. Вы могли бы сделать это: mysqldump -u root -p auth > data.sql && gzip data.sql

0
ответ дан 4 January 2011 в 19:44

Ваш синтаксис здесь неправильный. Поскольку вы отправляете выходные данные команды 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 [ 114]

или используйте тройник для разделения выхода: /usr/bin/mysqldump --opt -u root -ppassword database | tee database.sql | gzip > database.sql.gz

0
ответ дан 4 January 2011 в 19:44

Другие вопросы по тегам:

Похожие вопросы: