重定向日志輸出
./demo >> a1.log 2>&1
在 CentOS 7 或其他類 Unix 系統(tǒng)中,當(dāng)你想要將命令的標(biāo)準(zhǔn)輸出(stdout)和標(biāo)準(zhǔn)錯(cuò)誤輸出(stderr)都重定向到同一個(gè)文件中時(shí),你確實(shí)可以使用你所提到的重定向結(jié)構(gòu)。這里是一個(gè)準(zhǔn)確的例子,以及它的解釋:
| ./demo > a1.log 2>&1 |
這個(gè)命令的解釋如下:
-
./demo:這是你想要執(zhí)行的命令或腳本。.表示當(dāng)前目錄,/是目錄分隔符,demo是命令或腳本的名稱。 -
>:這是標(biāo)準(zhǔn)輸出(stdout)的重定向操作符。它會(huì)將命令的標(biāo)準(zhǔn)輸出重定向到指定的文件中。如果文件已存在,它會(huì)被覆蓋;如果文件不存在,它會(huì)被創(chuàng)建。 -
a1.log:這是你想要將標(biāo)準(zhǔn)輸出寫入的文件名。 -
2>&1:這部分是標(biāo)準(zhǔn)錯(cuò)誤(stderr)的重定向。在 Unix 和類 Unix 系統(tǒng)中,1通常代表標(biāo)準(zhǔn)輸出(stdout),而2代表標(biāo)準(zhǔn)錯(cuò)誤(stderr)。這個(gè)表達(dá)式2>&1的意思是將標(biāo)準(zhǔn)錯(cuò)誤(文件描述符 2)重定向到與標(biāo)準(zhǔn)輸出(文件描述符 1)相同的位置,也就是a1.log文件。
綜上所述,整個(gè)命令 ./demo > a1.log 2>&1 的意思是:執(zhí)行 ./demo 命令,將其標(biāo)準(zhǔn)輸出重定向到 a1.log 文件中,并將其標(biāo)準(zhǔn)錯(cuò)誤也重定向到同一個(gè) a1.log 文件中。這樣,你就可以在 a1.log 文件中看到命令的輸出和任何錯(cuò)誤消息了。
如果你想要追加內(nèi)容到文件而不是覆蓋它,你可以使用 >> 而不是 >,像這樣:
| ./demo >> a1.log 2>&1 |
這樣,demo 命令的輸出和錯(cuò)誤就會(huì)被追加到 a1.log 文件的末尾,而不是覆蓋文件內(nèi)容。

浙公網(wǎng)安備 33010602011771號(hào)