2 回答

TA貢獻(xiàn)1821條經(jīng)驗 獲得超6個贊
二者都是Linux系統(tǒng)的輸出重定向符號
">" 是輸出到文件中, 如果文件存在, 則原來的內(nèi)容被清空, 不存在則創(chuàng)建文件, 比如
ls?> filelist.txt
">>"是把輸出追加到文件中, 如果文件存在, 追加到末尾, 不存在則創(chuàng)建文件
格式:
command-line1 [1-n] > file或文件操作符或設(shè)備
上面命令意思是:將一條命令執(zhí)行結(jié)果(標(biāo)準(zhǔn)輸出,或者錯誤輸出,本來都要打印到屏幕上面的) 重定向其它輸出設(shè)備(文件,打開文件操作符,或打印機(jī)等等)1,2分別是標(biāo)準(zhǔn)輸出,錯誤輸出。
注意:
1、shell遇到”>”操作符,會判斷右邊文件是否存在,如果存在就先刪除,并且創(chuàng)建新文件。不存在直接創(chuàng)建。 無論左邊命令執(zhí)行是否成功。右邊文件都會變?yōu)榭铡?br />2、“>>”操作符,判斷右邊文件,如果不存在,先創(chuàng)建。以添加方式打開文件,會分配一個文件描述符[不特別指定,默認(rèn)為1,2]然后,與左邊的標(biāo)準(zhǔn)輸出(1)或錯誤輸出(2) 綁定。
3、當(dāng)命令:執(zhí)行完,綁定文件的描述符也自動失效。0,1,2又會空閑。
4、一條命令啟動,命令的輸入,正確輸出,錯誤輸出,默認(rèn)分別綁定0,1,2文件描述符。
5、一條命令在執(zhí)行前,先會檢查輸出是否正確,如果輸出設(shè)備錯誤,將不會進(jìn)行命令執(zhí)行

TA貢獻(xiàn)1810條經(jīng)驗 獲得超5個贊
>與>>都用來重定向輸出,不同的是>將覆蓋原有內(nèi)容,而>>則會追加內(nèi)容。例如:ls?-l?/ > 123.txt 將會列出/目錄下的所有文件(目錄)并將輸出結(jié)果保存至123.txt中,如果123.txt里有內(nèi)容456,那么這個456將會被覆蓋掉,而如果使用>>則這個456還會存在,命令的輸出結(jié)果保存至新的一行。
- 2 回答
- 0 關(guān)注
- 675 瀏覽
添加回答
舉報