3
當我運行的git克隆像往常一樣,我看到:如何將`git clone`的完整輸出重定向到一個文件?
$ git clone https://github.com/bensmithett/webpack-css-example
Cloning into 'webpack-css-example'...
remote: Counting objects: 179, done.
remote: Total 179 (delta 0), reused 0 (delta 0), pack-reused 179
Receiving objects: 100% (179/179), 24.07 KiB | 0 bytes/s, done.
Resolving deltas: 100% (79/79), done.
Checking connectivity... done
然而,當我試圖將其重定向到一個文件,我只看到這一點:
Cloning into 'webpack-css-example'...
這裏是我的嘗試:
$ git clone https://github.com/bensmithett/webpack-css-example 2>&1 | tee out.log
$ cat out.log
Cloning into 'sample-data'...
我在Node.js的試了一下爲好,它做同樣的事情:
const fs = require('fs');
const child = spawn('git clone https://github.com/bensmithett/webpack-css-example');
child.stdout.on('data', function(data){
console.log(String(data));
});
child.stderr.on('data', function(data){
console.log(String(data));
});
// Cloning into 'webpack-css-example'...
爲什麼所有的remote:
等東西沒有通過管道連接到stdin/stderr?有什麼方法可以捕獲輸出嗎?如果沒有,發生了什麼事情使得輸出顯示在終端中,但它沒有通過stdout或stderr傳遞?
有沒有辦法「假裝」它是運行命令的終端?這樣該命令可以在不改變其參數的情況下運行。這正是我所希望的,git只是一個例子。 –
@LancePollard,不是沒有額外的工具,如「unbuffer」。 –
@CharlesDuffy你如何做到這一點? –