輸出/輸入重導向:
檔案描述符(file descriptor),用乙個數字(通常為0-9)來表示乙個檔案。
常用的檔案描述符如下:
檔案描述符 名稱 常用縮寫 預設值
0 標準輸入 stdin 鍵盤 使用0《或0<< 資料流向從右向左
1 標準輸出 stdout 螢幕 使用1或1>> 資料(正確的資料)流向從左向右
2 標準錯誤輸出 stderr 螢幕 使用2>或2>> 資料(錯的資料)流向從左向右
《或0< 輸入重定向:輸入重定向用於改變命定的輸入,後面指定輸入內容,前面跟檔名
<< 或0<< 追加輸入重定向:後跟字串,用來表示「輸入結束」,也可以用ctrl+d來結束輸入
2> 錯誤重定向:把錯誤資訊輸入到後邊的檔案中,會刪除檔案原有內容
2>> 錯誤追加重定向:把錯誤資訊追加到後邊的檔案中,不會刪除檔案原有內容
符號作用
符號作用
>或1> 輸出重定向
重定向內容到檔案,清除已有的內容,然後加入新內容,如果檔案不存在會建立檔案
.或./
當前目錄
>>或1>>追加輸出重定向
追加內容到檔案尾部(無空格追加)
..或../
當前目錄的上級目錄
《或0< 輸入重定向
xargs -n 2 /
根目錄<< 或0《追加輸入重定向
;命令分隔符
{}生成乙個序列echo
\轉義字元
~當前使用者的家目錄
-使用者上一次所在目錄,由oldpwd變數控制
&&並且
!調出歷史第幾條命令、取反
Linux資料流重導向
當我們使用linux的時候,每下達1個命令,通常都會有對應的資訊輸出在螢幕上,這些輸出的資料就是資料流,而linux資料流重導向,就是把這些資料輸出到不同的地方了。而資料流通常分為正確的資料跟錯誤的資料,如果我們要把正確的資料導向到我們要的檔案裡面去,可以使 覆蓋 新增 來處理。malt malt ...
Linux 雙向重導向命令tee
想個簡單的東西,我們知道 會將資料流整個傳送給檔案或裝置,因此我們除非去讀取該檔案或裝置,否則就無法繼續利用這個資料流。萬一我想要將這個資料流的處理過程中將某段資訊存下來,應該怎麼做?利用 tee 就可以 我們可以這樣簡單的看一下 tee 會同時將資料流分送到檔案與螢幕 screen 而輸出到螢幕的...
Linux之資料流重導向
其實一開始繞進檔案描述符這個大坑裡去了,越挖越深,什麼系統檔案表,記憶體索引節點,vfs等等都一下子冒了出來,而我暫時還沒那麼多精力搞定所有,於是只能遮蔽底層的一些細節,暫且當作黑盒子,來日再挖。1 linux系統中,一切資源都被視為檔案,包括放在磁碟上的各種文件,甚至各種裝置。檔案是linux組織...