2 回答

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

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