linux命令输出重定向 linux 输入输出重定向( 三 )


或者等同于
#ls /dev 1filename #注意:"1"和""中间没有空格
以上命令会把命令的标准输出重新定向到一个文件filename,而不是显示到屏幕上 , 如果不指明文件标识符,系统默认的就是1, 因此1可以省略
如果把上面例子重的""改成""则表示把输出追加到filename文件的末尾,如果文件不存在则创建它 。如下
#ls /dev filename
也可以把标准错误重新定向到文件
#ls -qw /dev 2filename
显然 -qw是一个错误参数,通常会在显示器上报告一个错误信息,但由于把2标准错误(stderr)重新定向到了文件filename,因此显示器没有错误信息,而信息写到了文件里面
以下命令是把标准输出和错误都定向到文件
#ls /dev filename
""在这里代表标准输出和标准错误,这里无论是正常输出还是错误信息都写到filename中了 。
重新定义标准输入,输出,和错误的文件标识符
重新定义文件标识符可以用ij命令 , 表示把文件标识符i重新定向到j , 你可以把""理解为"取地址"
请看以下例子
#exec 51
表示把文件标识符5定向到标准输出,这个命令通常用来临时保存标准输入 。
同样标准输入也是可以重新定向的,请参考下面例子
# grep search-word
一般来说grep命令在给定文件中搜索字符串,以上命令把文件filename作为grep命令的标准输入,而不是从键盘输入 。
前面曾经提到,系统为每一个打开的文件指定一个文件标识符以便系统对文件进行跟踪,那么默认的文件标识符是什么呢?答案是0,也就是标准输入,或者可以说从键盘输入 。当然这个文件标识符也可以自己指定,请参考下面例子
#echo 123456789 filename 把字符串写到文件filename中 #exec 3filename 把文件filename打开,并指定文件标识符为3 #read -n 4 3 从文件中读4个字符,句柄已经指到第四个字符末尾 #echo -n . 3 在第5个字符处写一个点,覆盖第5个字符,-n表示不换行 #exec 3- 关闭文件标识符3
现在cat filename文件的结果就成了1234.6789
命令jfilename表示把文件打开,并指明文件标识符为j
"-"表示关闭文件标识符
有关关闭文件标识符的操作请参考下面
n- 关闭输入文件标识符n 0-或- 关闭标准输入stdin n- 关闭输出文件标识符n 1-或-关闭标准输出stdout
另外还有一些其他命令,如下参考
2. : filename 或者filename
表示把文件filename设置成空,也就是清空文件内容,如果文件不存在 , 则创建一个空文件 , (等同于touch命令) :表示一个空输出 , 两个命令的唯一区别就是filename不是在所有shell都可以正常工作的 。
;
Linux 标准输入输出、重定向、管道、文件权限、后台启动进程命令-IO 重定向是为了改变默认输入、输出linux命令输出重定向的位置linux命令输出重定向,如默认情况下标准输出(STDOUT)linux命令输出重定向,标准错误输出(STDERR)都是输出到显示终端linux命令输出重定向,如对标准输出、标准错误输出改变其默认输出位置,可重定向输出到指定linux命令输出重定向的文件中(实际工作中经常这么使用) , 要重定向就要配合一些语法符号 。
文件或目录的访问权限分为只读、只写、可执行三种 。
修改文件权限命令:chmod、chgrp、chown 。
搞懂「文件所属者更改及权限的赋予」 , 涉及关于 chown、chmod、chgrp 命令,结合用例零基础理解和掌握使用 。
linux命令输出重定向的介绍就聊到这里吧,感谢你花时间阅读本站内容 , 更多关于linux 输入输出重定向、linux命令输出重定向的信息别忘了在本站进行查找喔 。

推荐阅读