我在查看 pre-commit hook 时发现了下面一行,因为我想知道为什么在执行提交之后,我的目录中总是出现一个名为 1
的空文件。
git status 2&>1 > /dev/null
我相信我的初衷是写下以下内容,我已经纠正过了。
git status 2>&1 > /dev/null
但是,我很好奇下面的语法到底是做什么的,所以我查找了手册页。
git status 2&>1
这是手册页。
Redirecting Standard Output and Standard Error
This construct allows both the standard output (file descriptor 1) and
the standard error output (file descriptor 2) to be redirected to the
file whose name is the expansion of word.
There are two formats for redirecting standard output and standard
error:
&>word
and
>&word
Of the two forms, the first is preferred. This is semantically equiva‐
lent to
>word 2>&1
但是,这个手册页暗示两者是等价的,而实际情况似乎并非如此。
有人能解释一下这个手册页并解释一下这个语法到底发生了什么吗?