数据流重定向
作者:互联网
20.11.30
数据流重定向
- 标准输入 (stdin) :代码为 0 ,使用 < 或 << ;
- 标准输出 (stdout):代码为 1 ,使用 > 或 >> ;
- 标准错误输出(stderr):代码为 2 ,使用 2> 或 2>> ;
-
1> :以覆盖的方法将『正确的数据』输出到指定的文件或装置上;
-
1>>:以累加的方法将『正确的数据』输出到指定的文件或装置上;
-
2> :以覆盖的方法将『错误的数据』输出到指定的文件或装置上;
-
2>>:以累加的方法将『错误的数据』输出到指定的文件或装置上;
-
0<:
用 stdin 取代键盘的输入以创建新文件的简单流程 [root@www ~]# cat > catfile < ~/.bashrc [root@www ~]# ll catfile ~/.bashrc -rw-r--r-- 1 root root 194 Sep 26 13:36 /root/.bashrc -rw-r--r-- 1 root root 194 Feb 6 18:29 catfile # 注意看,这两个文件的大小会一模一样!几乎像是使用 cp 来复制一般!
-
0<<:
[root@www ~]# cat > catfile << "eof" <==这里“eof”代表结束的输入字符 > This is a test. > OK now stop > eof <==输入这关键词,立刻就结束而不需要输入 [ctrl]+d [root@www ~]# cat catfile <==我要用 cat 直接将输入的信息输出到 catfile 中, 且当由键盘输入 eof 时,该次输入就结束 This is a test. OK now stop <==只有这两行,不会存在关键词那一行!
- 屏幕输出的信息很重要,而且我们需要将他存下来的时候;
- 背景运行中的程序,不希望他干扰屏幕正常的输出结果时;
- 一些系统的例行命令 (例如写在 /etc/crontab 中的文件) 的运行结果,希望他可以存下来时;
- 一些运行命令的可能已知错误信息时,想以『 2> /dev/null 』将他丢掉时;
- 错误信息与正确信息需要分别输出时。
-
/dev/null 垃圾桶黑洞装置与特殊写法
ls -a > /dev/null
:将该命令输出内容丢到垃圾桶~
将命令的正确错误数据全部写入名为 list 的文件中
[dmtsai@www ~]$ find /home -name .bashrc > list 2> list <==错误
[dmtsai@www ~]$ find /home -name .bashrc > list 2>&1 <==正确
[dmtsai@www ~]$ find /home -name .bashrc &> list
命令运行的判断依据: ; , &&, ||
-
cmd ; cmd (不考虑命令相关性的连续命令下达)
-
若前一个命令运行的结果为正确,在 Linux 底下会回传一个 $? = 0 的值
命令下达情况 | 说明 |
---|---|
cmd1 && cmd2 | 1. 若 cmd1 运行完毕且正确运行($?=0),则开始运行 cmd2。 2. 若 cmd1 运行完毕且为错误 ($?≠0),则 cmd2 不运行。 |
cmd1 || cmd2 | 1. 若 cmd1 运行完毕且正确运行($?=0),则 cmd2 不运行。 2. 若 cmd1 运行完毕且为错误 ($?≠0),则开始运行 cmd2。 |
标签:输出,重定向,list,cmd1,cmd2,数据流,root,运行 来源: https://www.cnblogs.com/ananing/p/14064059.html