您的位置:首页 > 运维架构 > Linux

linux中输入输出和重定向问题

2016-09-28 15:01 274 查看
输入输出解释  

当我们执行shell的时候,每个进程都和三个打开的文件有关系,并使用文件描述符来引用这些文件。但这些文件不容易记忆,所以shell给了相应的文件名:

0:输入文件-标准输入(它的命令是输入,缺省是键盘,也可以是文件或者其他命令的输出)

1:输出文件-标准输出(它的命令是输出,缺省是屏幕,也可以是文件)

2:错误输出文件-标准输出(它的命令是错误的输出,缺省是屏幕,也可以是文件)(或许会有疑问,为什么会定义错误输出,因为很多人喜欢把错误单独输出,或者在处理大数据文件时,可能产生很多的错误,所以定义了此命令)

文件重定向

在执行命令的时候,可以指定命令的输入,输出和错误,要实现这个, 就必须使用文件重定向。

在对标准错误进行重定向时,必须使用文件描述符,但是对于标准输入和输出来说,则不是必须的。

下面是几种写法的案列:

command > filename    把把标准输出重定向到一个新文件中

command >> filename 把标准输出重定向到一个文件中(追加)

command 1 > fielname 把标准输出重定向到一个文件中

command > filename 2>&1 把标准输出和标准错误一起重定向到一个文件中

command 2 > filename 把标准错误重定向到一个文件中

command 2 >> filename 把标准输出重定向到一个文件中(追加)

command >> filename 2>&1 把标准输出和标准错误一起重定向到一个文件中(追加)

command < filename >filename2 把c o m m a n d命令以f i l e n a m e文件作为标准输入,以f i l e n a m e 2文件作为标准输出

command < filename 把c o m m a n d命令以f i l e n a m e文件作为标准输入

command << delimiter 把从标准输入中读入,直至遇到d e l i m i t e r分界符

command <&m 把文件描述符m作为标准输入

command >&m 把标准输出重定向到文件描述符m中

command <&- 把关闭标准输入
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: