某些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 –