linux命令无法重定向 linux 重定向错误输出

Linux系统命令中关于输入、输出重定向问题 , 求解你问的这个如果细讲的话,能说一堆 。建议还是百度一下:linux 标准输入,输出,重定向 。
LINUX默认输入是键盘 , 输出是显示器 。你可以用重定向来改变这些设置 。比如用wc命令的时候本来是要手动输入一篇文字来计算字符数的,用了重定向后可以直接把一个已经写好的文件用‘’指向这条命令,就直接可以统计这个文件的字符数等了 。输出也是一样,你可以把屏幕输出重定向输出''到一个文件里,再到文件里去看结果 。输出又分标准输出和标准错误输出 。建议还是看书,在练习 。
光听别人说体会的还是不深 。
linux中的重定向问题不管是还是2都属于追加重定向 。也就说linux命令无法重定向 , 新重定向的内容不会覆盖掉原有文件里的内容,而是另起一行 。只不过,是只对正确的内容或者结果进行重定向;而2,只对错误的内容或结果进行重定向 。
比如原有文件a.txt,里面有一内容this is a test 。现在我执行了命令linux命令无法重定向:ls-la.txt, 那么这个时候,因为的ls -l这个命令是正确的 , 所以ls -l 这个命令的结果将会被追加到a.txt中,以行为单位,写在了this is a test这段内容下面 。
相反如果我执行了命令aaaa2 a.txt,那么因为这个命令是错的 , 所以会把我执行的aaaa命令之后所提示的错误提示(比如: command not found)追加到a.txt,同样是在this is a test这段话的下面 。
而 和2却是不追加 , 而是覆盖掉原有内容,其linux命令无法重定向他意思一样 。
Linux重定向输出重定向 linux命令无法重定向:
linux命令无法重定向我们使用或者对输出进行重定向 。符号linux命令无法重定向的左边表示文件描述符 , 如果没有的话表示1,也就是标准输出, 符号的右边可以是一个文件,也可以是一个输出设备(Linux中万物皆文件,即设备也是文件) 。当使用时,会判断右边的文件存不存在,如果存在的话就先删除,然后创建一个新的文件 , 不存在的话则直接创建 。但是当使用进行追加时 , 则不会删除原来已经存在的文件 。
格式 :
command-line[n] 文件
这条命令意思是:将一条命令执行结果(标准输出 , 或者错误输出,本来都要打印到屏幕上面的)重定向其它输出设备(文件)1,2分别是标准输出,错误输出 。
实例 :
输入重定向
在理解linux命令无法重定向了输出重定向之后,理解输入重定向就会容易得多 。对输入重定向的基本命令如下:
我们使用对输入做重定向,如果符号左边没有写值,那么默认就是0 。
格式:
command-line [n] 文件
【linux命令无法重定向 linux 重定向错误输出】 命令默认从键盘获得的输入,使用输入重定向改成从文件 , 或者其它打开文件以及设备输入 。执行这个命令,将标准输入0,与文件或设备绑定 , 将由它进行输入 。
实例:
文件描述符的复制表示复制文件描述符到另一个文件描述符中,也就是将该文件描述符重定向到另一个文件描述符所绑定的文件 , 使用””进行复制 。
想必很多人都知道 file 21 的作用,它等价于 file,表示标准输出和标准错误都重定向到file中 。那它和 21 file 有什么区别呢?
首先解释 file 21。这里分两个过程:先打开file,再将fd=1重定向到file文件上,这样file文件就成了标准输出的输出目标linux命令无法重定向;之后再将fd=2复制于fd=1 , 而fd=1此时已经重定向到file文件上,因此fd=2也重定向到file上 。所以,最终的结果是标准输出重定向到file上,标准错误也重定向到file上 。

推荐阅读