某些git命令是關於io重定向的備註,例如git bundle
。我懷疑這與使用的底層「管道」命令有關。有關於IO redirection的一個很好的教程,以及與git commands有關的類似問題。但是,該解決方案不適用於所有 git命令,例如。 git bundle
。不尊重io重定向的git命令
例如。
$ /usr/bin/git bundle create /tmp/backup.bundle --all >/tmp/backup.txt 2>&1
$ ls -al /tmp
-rw-rw-r-- 1 myuser mygroup 4329 Jan 25 10:46 backup.bundle
-rw-rw-r-- 1 myuser mygroup 0 Jan 25 10:46 backup.txt
然而,在命令行中我可以看到有一些有趣的輸出:
$ /usr/bin/git bundle create /tmp/backup.bundle --all
Counting objects: 6, done.
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 4.11 KiB | 0 bytes/s, done.
Total 6 (delta 0), reused 0 (delta 0)
那麼,爲什麼我不能用IO重定向抓住這個?輸出在哪裏?
在這樣做時,會發生什麼'在/ usr /斌/ git的束創建/tmp/backup.bundle --all> /tmp/backup.txt 2>&1'?它不是寫入文件,而是寫入'stdout'? – Inian
對不起,錯字 - 'backup.txt'被創建爲一個空文件,即。沒有輸出收集(意想不到)並沒有什麼被打印在'stdout'或'stderr'到終端(如預期)@Inian –