在操作系統中,我們經常會遇到命令操作符>(輸出重定向)和>>(輸出追加重定向)。
很多新手小伙伴在接觸的時候,總是困惑輸出重定向(>)和輸出追加重定向(>>)的區別,下面小編就和大家一起分享,>和>>的區別。
百度經驗:jingyan.baidu.com
百度經驗:jingyan.baidu.com
方法/步驟
-
這里小編就以windows為例(unix/linux也是一樣)
echo的作用:
echo的作用其實很簡單,就是打印字符串到輸出文件流。
例如:
echo Hello,Binn
如圖,執行之后,終端會打印出echo的參數,即Hello,Binn
-
>操作符輸出重定向的作用:
echo + 輸出重定向的用法:
echo 參數 > 輸出文件
echo Hello,Binn > tmp.txt
這句話的意思即是:輸出Hello,Binn字符串到一個位置,如果tmp.txt存在,我們即【清空其內容,更新為Hello,Binn】,不存在,創建之
這個過程,echo沒有像之前那樣向終端打印參數,為什么?
原因是因為,>輸出重定向把echo的參數輸出到某個文件(而不是輸出到終端,這就是輸出重定向)。
-
此時我們看看tmp.txt的內容。
type tmp.txt
(linux/unix請用cat)
這是不是我們剛剛echo要輸出的內容呢?沒錯,就是這個。
-
操作符>>輸出追加重定向和>輸出重定向功能類似。
相同的地方是:如果重定向的文件不存在,創建之
唯一不同的地方是:【如果重定向的文件存在,追加之(>符是清空后新增內容,>>是在文件末尾追加字符串)】
我們這樣做個試驗,更容易理解。
6步,仔細觀察,很容易就能理解。
1、輸出重定向a到tmp.txt:
echo Hello,A > tmp.txt
2、查看tmp.txt的內容(此時的內容是A)
type tmp.txt
3、輸出重定向b到tmp.txt
echo Hello,B > tmp.txt
4、查看tmp.txt的內容(此時可以看到,>已經把A替換成B了)
type tmp.txt
5、輸出追加重定向c到tmp.txt
echo Hello,C >> tmp.txt
6、查看tmp.txt的內容(此時可以看到,原來的字符串B並沒有被替換,而是在B的下一行新增字符串C,即追加操作)
type tmp.txt
不多說,一步一步來。
-
第三步和第四步:
3、輸出重定向b到tmp.txt
echo Hello,B > tmp.txt
4、查看tmp.txt的內容(此時可以看到,>已經把A替換成B了)
type tmp.txt
-
第五步和第六步:
5、輸出追加重定向c到tmp.txt
echo Hello,C >> tmp.txt
6、查看tmp.txt的內容(此時可以看到,原來的字符串B並沒有被替換,而是在B的下一行新增字符串C,即追加操作)
type tmp.txt
做到這里相信小伙伴已經明白重定向和追加重定向的區別。
END