TLCL学习笔记|第七章《重定向》|重定向符“>”|part1
(认知有限,如有不妥,还请告知,欢迎讨论)
一般情况下,
如果执行 ls -l 命令,其结果(标准输出)输出到屏幕;
如果执行 ls -l <一个不存在的目录> 命令,其结果(标准错误输出)输出到屏幕。
> (标准输出重定向)
执行 ls -l . > ls-output.txt
此时原来会打印到屏幕的标准输出,则存到了ls-output.txt
在这之后,如果下一步再次执行类似的命令,但查找的目录不是一个存在的目录
(比如执行ls -l /bin/usr > ls-output.txt , 屏幕会显示标准错误输出No such file or directory), ls-output.txt会被清空,因为程序执行错误,导致没有输出结果。(ls -l ls-output.txt,会发现文件长度变为0)
如果下一步需要查找的目录是一个存在的目录,比如执行ls -l /usr/bin > ls-output.txt, 则会重写ls-output.txt
如果不想重写文件,想继续接着之前的内容续写文件, 则使用 >>, 比如 ls -l /usr/bin >> ls-output.txt
2> (标准错误输出重定向)
执行 ls -l /bin/usr 2> ls-error.txt 将报错文本写进error.txt中
如果想将 标准错误输出 和 标准输出 都续写进同一个txt文件中,则可执行
ls -l /bin/usr >> ls-output.txt 2>&1
或
ls -l /bin/usr &>> ls-output.txt
=END=
[1]http://billie66.github.io/TLCL/book/chap07.html