常见的文件描述符: 标准输入stdin, 标准输出stdout, 标准错误stderr
1. 将输出的文本重定向或者保存到一个文件中
$ echo "this is a sample" > temp.txt 通过这条命令会将"this is a sample"写入到temp.txt文件里,注意如果没有这个文件会创建这个文件,如果已经有temp.txt了,会清空原来的内容,重新输入。
2. 将文本追加到目标文件后面
$ echo "this is a sample" >>temp.txt
3. 查看文件内容
$ cat aaaa.txt
"this is a samplae"
"this is a samplae"
4. 当命令输出错误信息时, stderr 信息就会被打印出来
$ cat aaaa.txt
cat: aaaa.txt: No such file or directory
5. 文件重定向
Administrator@Q23YDB58A1ABZ1N MINGW64 ~
$ echo "b1" >b1
Administrator@Q23YDB58A1ABZ1N MINGW64 ~
$ echo "b2">b2
Administrator@Q23YDB58A1ABZ1N MINGW64 ~
$ echo "b3">b3
Administrator@Q23YDB58A1ABZ1N MINGW64 ~
$ echo b1 > b1
Administrator@Q23YDB58A1ABZ1N MINGW64 ~
$ cp b1 b2; cp b2 b3
Administrator@Q23YDB58A1ABZ1N MINGW64 ~
$ chmod 000 a1
Administrator@Q23YDB58A1ABZ1N MINGW64 ~
$ cat b1
b1
Administrator@Q23YDB58A1ABZ1N MINGW64 ~
$ cat b2
b1
Administrator@Q23YDB58A1ABZ1N MINGW64 ~
$ cat b3
b1
6. 但是有一个方法既可以将数据重定向到文件,还可以提供一份重定向数据的副本作为后续命令的 stdin 。这一切都可以使用 tee 来实现。举个例子:要在终端中打印stdout ,同时将它重定向到一个文件中,那么可以这样使用 tee
Administrator@Q23YDB58A1ABZ1N MINGW64 ~
$ cat b1 | tee out.txt | cat -n
1 b1
Administrator@Q23YDB58A1ABZ1N MINGW64 ~
$ cat b1 | tee out.txt | cat -n
1 b1
Administrator@Q23YDB58A1ABZ1N MINGW64 ~
$ cat out.txt
b1
7. 使用stdin做为命令韩参数,只需要将-做为命令的文件名参数即可
$ echo who is this | tee -
who is this
8. >和>>是有区别的,两者都可以将文本重定向导文件,前者先清空文件,然后再写入内容,后者会将内容追加到现有文件的尾部。即前者是清空并写入,后者是加入到文本尾部。
1. 将输出的文本重定向或者保存到一个文件中
$ echo "this is a sample" > temp.txt 通过这条命令会将"this is a sample"写入到temp.txt文件里,注意如果没有这个文件会创建这个文件,如果已经有temp.txt了,会清空原来的内容,重新输入。
2. 将文本追加到目标文件后面
$ echo "this is a sample" >>temp.txt
3. 查看文件内容
$ cat aaaa.txt
"this is a samplae"
"this is a samplae"
4. 当命令输出错误信息时, stderr 信息就会被打印出来
$ cat aaaa.txt
cat: aaaa.txt: No such file or directory
5. 文件重定向
Administrator@Q23YDB58A1ABZ1N MINGW64 ~
$ echo "b1" >b1
Administrator@Q23YDB58A1ABZ1N MINGW64 ~
$ echo "b2">b2
Administrator@Q23YDB58A1ABZ1N MINGW64 ~
$ echo "b3">b3
Administrator@Q23YDB58A1ABZ1N MINGW64 ~
$ echo b1 > b1
Administrator@Q23YDB58A1ABZ1N MINGW64 ~
$ cp b1 b2; cp b2 b3
Administrator@Q23YDB58A1ABZ1N MINGW64 ~
$ chmod 000 a1
Administrator@Q23YDB58A1ABZ1N MINGW64 ~
$ cat b1
b1
Administrator@Q23YDB58A1ABZ1N MINGW64 ~
$ cat b2
b1
Administrator@Q23YDB58A1ABZ1N MINGW64 ~
$ cat b3
b1
6. 但是有一个方法既可以将数据重定向到文件,还可以提供一份重定向数据的副本作为后续命令的 stdin 。这一切都可以使用 tee 来实现。举个例子:要在终端中打印stdout ,同时将它重定向到一个文件中,那么可以这样使用 tee
Administrator@Q23YDB58A1ABZ1N MINGW64 ~
$ cat b1 | tee out.txt | cat -n
1 b1
Administrator@Q23YDB58A1ABZ1N MINGW64 ~
$ cat b1 | tee out.txt | cat -n
1 b1
Administrator@Q23YDB58A1ABZ1N MINGW64 ~
$ cat out.txt
b1
7. 使用stdin做为命令韩参数,只需要将-做为命令的文件名参数即可
$ echo who is this | tee -
who is this
8. >和>>是有区别的,两者都可以将文本重定向导文件,前者先清空文件,然后再写入内容,后者会将内容追加到现有文件的尾部。即前者是清空并写入,后者是加入到文本尾部。