国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

shell常用重定向實例講解

2019-10-26 18:41:35
字體:
來源:轉載
供稿:網友

每個打開的文件都會被分配一個文件描述符.stdin (鍵盤), stdout (屏幕), 和 stderr (錯誤消息輸出到屏幕上)的文件描述符分別是0, 1, 和 2. 對于正在打開的額外文件, 保留了描述符3到9.

文件描述符是文件系統為了跟蹤這個打開的文件而分配給它的一個數字。

下面以實例說明

1,>的用法
代碼如下:
[zhangy@localhost ~]$ echo "11111" > 1.txt
[zhangy@localhost ~]$ cat 1.txt
11111
[zhangy@localhost ~]$ echo "11111" 1> 1.txt    //這個用法和上面的用法是一樣
[zhangy@localhost ~]$ cat 1.txt
11111
[zhangy@localhost ~]$ echo "22222" >1.txt
[zhangy@localhost ~]$ cat 1.txt
22222

這種用法我想大家都非常的熟悉,因為這是我經常會用到的。echo "11111" > 1.txt 時,>前面是有一個1的,是默認的。>重定向到文件時,會將文件清空,在寫入。
代碼如下:
[zhangy@localhost ~]$ > 1.txt 
[zhangy@localhost ~]$ :> 1.txt 

上面的這個例子,可以把1.txt文件中的內容清空,其實也很好理解,清空后,不輸入內容當然為空了。

2,>>的用法

代碼如下:
[zhangy@localhost ~]$ echo "2222" >> 2.txt
[zhangy@localhost ~]$ cat 2.txt
2222
[zhangy@localhost ~]$ echo "2222" >> 2.txt
[zhangy@localhost ~]$ cat 2.txt
2222
2222

從上面的這個例子我們可以看出,>>重定向到文件時,會將輸出寫到文件的結尾。這一點和>完全不同的。

3,0,1,2 到9,以及&
代碼如下:
[zhangy@localhost ~]$ cat 1.txt
 333
 111
 222
 444
 [zhangy@localhost ~]$ grep "22" 0< 1.txt  //把1.txt中的內容讀取出來
 222
 [zhangy@localhost ~]$ ls tank 2>> 1.txt   //將錯誤信息放到文件的結尾
 [zhangy@localhost ~]$ cat 1.txt
 333
 111
 222
 444
 ls: tank: 沒有那個文件或目錄                 //這個就是 2>> 1.txt產生的內容
 [zhangy@localhost ~]$ (ls tank ;pwd) &>1.txt   //將錯誤信息,以及輸出內容放到1.txt文件中,&(stderr,stdout)
 [zhangy@localhost ~]$ cat 1.txt
 ls: tank: 沒有那個文件或目錄
 /home/zhangy

i>&j重定向文件描述符i 到 j.指向i文件的所有輸出都發送到j中去. i和j呢是0-9這間的數字

代碼如下:
[zhangy@localhost ~]$ ls tank 2>&1|egrep /* 1> 2.txt  //在這里我把錯誤信息重定向到了1,在這里1就會輸出錯誤,根賦值差不多
[zhangy@localhost ~]$ cat 2.txt
ls: tank: 沒有那個文件或目錄

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 海城市| 澎湖县| 靖西县| 青浦区| 江达县| 涟源市| 彰化县| 正宁县| 天津市| 晋州市| 鄯善县| 望奎县| 安达市| 常德市| 万年县| 晴隆县| 葵青区| 彩票| 乌拉特后旗| 通海县| 榆林市| 兰州市| 禄丰县| 崇礼县| 汉寿县| 富顺县| 拉孜县| 冀州市| 南康市| 家居| 印江| 宿州市| 泸州市| 图木舒克市| 微博| 大厂| 秭归县| 桃江县| 上蔡县| 健康| 于都县|