輸入重定向:指把文件導(dǎo)入到命令中
輸出重定向:指把原本要輸出到屏幕的數(shù)據(jù)信息寫(xiě)入到指定的文件中
在日常使用中相較于輸入重定向吉挣,我們使用輸出重定向的頻率更高派撕,所以又將輸出重定向分為標(biāo)準(zhǔn)輸出重定向和錯(cuò)誤輸出重定向兩種不同的狀態(tài),以及清空寫(xiě)入和追加寫(xiě)入兩種模式睬魂。
標(biāo)準(zhǔn)輸入重定向(STDIN终吼,文件描述符為0):默認(rèn)從鍵盤(pán)輸入,也可從其他文件或命令中輸入氯哮。
標(biāo)準(zhǔn)輸出重定向(STDOUT际跪,文件描述符為1):默認(rèn)輸出到屏幕。
錯(cuò)誤輸出重定向(STDERR喉钢,文件描述符為2):默認(rèn)輸出到屏幕姆打。
舉例說(shuō)明:創(chuàng)建了目錄123查看123目錄是存在的,在查看321目錄則不存在
[yingqikey@xuexi ~]$ touch 123
[yingqikey@xuexi ~]$ ls -l 123
-rw-rw-r-- 1 yingqikey yingqikey 0 2月 22 00:03 123
[yingqikey@xuexi ~]$ ls -l 321
ls: 無(wú)法訪問(wèn)321: 沒(méi)有那個(gè)文件或目錄
一個(gè)為標(biāo)準(zhǔn)輸出重定向一個(gè)為錯(cuò)誤輸出重定向
對(duì)于輸入重定向來(lái)講肠虽,用到的符號(hào)及其作用如表所示幔戏。
輸入重定向中用到的符號(hào)及其作用
符號(hào) 作用
命令 < 文件 將文件作為命令的標(biāo)準(zhǔn)輸入
命令 << 分界符 從標(biāo)準(zhǔn)輸入中讀入,直到遇見(jiàn)分界符才停止
命令 < 文件1 > 文件2 將文件1作為命令的標(biāo)準(zhǔn)輸入并將標(biāo)準(zhǔn)輸出到文件2
對(duì)于輸出重定向來(lái)講税课,用到的符號(hào)及其作用如表所示闲延。
輸出重定向中用到的符號(hào)及其作用
符號(hào) 作用
命令 > 文件 將標(biāo)準(zhǔn)輸出重定向到一個(gè)文件中(清空原有文件的數(shù)據(jù))
命令 2> 文件 將錯(cuò)誤輸出重定向到一個(gè)文件中(清空原有文件的數(shù)據(jù))
命令 >> 文件 將標(biāo)準(zhǔn)輸出重定向到一個(gè)文件中(追加到原有內(nèi)容的后面)
命令 2>> 文件 將錯(cuò)誤輸出重定向到一個(gè)文件中(追加到原有內(nèi)容的后面)
命令 >> 文件 2>&1
或
命令 &>> 文件 將標(biāo)準(zhǔn)輸出與錯(cuò)誤輸出共同寫(xiě)入到文件中(追加到原有內(nèi)容的后面)
標(biāo)準(zhǔn)輸出重定向?qū)an bash 的命令原本是會(huì)輸出到屏幕的信息寫(xiě)入到123.txt中,然后顯示123.txt的文本內(nèi)容
[yingqikey@xuexi ~]$ man bash > 123.txt
[yingqikey@xuexi ~]$ cat 123.txt
BASH(1) General Commands Manual BASH(1)
NAME
bash - GNU Bourne-Again SHell
SYNOPSIS
bash [options] [file]
COPYRIGHT
Bash is Copyright (C) 1989-2011 by the Free Software Foundation, Inc.
覆蓋寫(xiě)入和追加寫(xiě)入的操作(原先文本中的man bash被覆蓋掉了)
[yingqikey@xuexi ~]$ echo "HOLLE WORLD" > 123.txt
[yingqikey@xuexi ~]$ cat 123.txt
HOLLE WORLD
[yingqikey@xuexi ~]$ echo "hello world" >> 123.txt
[yingqikey@xuexi ~]$ cat 123.txt
HOLLE WORLD
hello world
使用命令2>>文件使錯(cuò)誤的輸出重定向到一個(gè)文件中
[root@xuexi ~]# ls -l 123.txt > /root/stderr.txt
ls: 無(wú)法訪問(wèn)123.txt: 沒(méi)有那個(gè)文件或目錄
[root@xuexi ~]# ls -l 123.txt 2> /root/stderr.txt
[root@xuexi ~]# ls
anaconda-ks.cfg LinuxProbe.pdf stderr.txt
[root@xuexi ~]# cat stderr.txt
ls: 無(wú)法訪問(wèn)123.txt: 沒(méi)有那個(gè)文件或目錄