7.1輸入輸出重定向
一、“>”輸出重定向指令
cat /etc/passwd |head -3 >test1
把etc下的passwd頭三行輸出到指定的test檔案裡,并且覆寫原檔案裡的内容。
二、">>"輸出追加指令
cat /etc/passwd |tail -3 >>test2
cat test1 test2 >>test3
把test1,test2輸出到指定的test3檔案裡,但不覆寫原檔案裡的内容,在原檔案後面追加。
注意:輸出檔案不能作為輸入檔案
cat test1 test2>>test2
此指令錯誤!
問題:如果想在原檔案前面追加,怎麼辦?
tac test1 >>test3?(不行,這隻會把test1檔案倒着追加到test3後面)
我隻能想到最笨的一種方法:cat test1 test3 >test4 ,cat test4>test3 ;
三、
在linux中,常見的輸入輸出有如下幾種:
标準輸入: 輸入裝置為:鍵盤,檔案 并标記為 0
标準輸出: 輸出裝置為:螢幕,終端 并标記為 1
錯誤輸出: 輸出裝置為:螢幕,終端 并标記為 2
這樣我們就有機會把正确和錯誤的檔案分開顯示
比如 cat test1 test5 1>right.txt 2>error.txt
這樣由于test1存在 是以test1的内容會被輸入到right.txt中,而test5沒有建立,則執行cat test5指令時會報錯,則報錯的内容會被輸入到error.txt中。
cat error.txt
cat :test5:沒有那個檔案或目錄
當然也有通吃指令 &>
cat test1 test5 &>tongchi(這表示不管你是對是錯都輸入到此檔案中去)
追加">>"的使用,跟上述相同
五、“<”導入指令
gunzip <passwd.gz>passwd(将壓縮檔案 passwd.gz,傳遞給前面的解壓縮檔案去執行,然後重定向到指定檔案。)
這裡有個很出名的指令
dd if=/dev/zero of=linbs=1024 count=20000
這條指令是産生一個指定大小的檔案。/dev/zero是個僞檔案,是系統的零發生器。作用說白了就是往一個檔案裡不斷輸入零,讓檔案達到所規定的大小。有點注水豬肉的味道。