результат от "gsutil cp" всегда в stderr, а не в stdout - PullRequest
0 голосов
/ 17 мая 2018

Как видно из заголовка, результаты из "gsutil cp" не перенаправляют на stdout, они всегда перенаправляют на stderr.

Как пример: gsutil cp existed_file.txt . > >(tee -a out.log) 2> >(tee -a error.log >&2). В приведенной выше команде out.log пуст, а error.log имеет успешный результат копирования.

Его поведение неверно, потому что, если указанная выше команда верна, ее вывод должен возвращаться в out.log, а не в error.log.

Как я могу это исправить?

1 Ответ

0 голосов
/ 17 мая 2018

gsutil выводит информацию о прогрессе / статусе в stderr по проекту, чтобы отделить прогресс / статус от данных, которые выводятся в stdout. Например, если вы запустите:

gsutil ls gs://my-bucket > listing 2>&1 log

вы увидите список сегментов в файле «перечисление», а любые ошибки или другую информацию о состоянии в файле «log».

Хотя вывод gsutil cp не генерирует данные (только статус), мы используем вышеупомянутое деление stderr / stdout для всех команд, поэтому gsutil ведет себя согласованно в этом отношении для всех команд.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...