linux 从入门到跑路–重定向 管道

Posted Francis Drake K

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 从入门到跑路–重定向 管道相关的知识,希望对你有一定的参考价值。

linux 从入门到跑路

重定向 管道

Linux给程序提供三种I/O设备
标准输入(STDIN)-0默认接受来自键盘的输入
标准输出(STDOUT)-1默认输出到终端窗口
标准错误(STDERR)-2默认输出到终端窗口
I/O重定向:改变默认位置

重定向

重定向会覆盖原文件内容

> 把STDOUT重定向到文件
2> 把STDERR重定向到文件
&> 把所有输出重定向到文件
set –C 禁止将内容覆盖已有文件,但可追加
set +C 允许覆盖

>| file 强制覆盖

#多输出实例
[[email protected] ~]# ll /mytext/
总用量 0
-rwxrwxrwx. 1 root root 0 7月  22 03:52 1
-rw-r--r--. 1 root root 0 7月  22 03:52 10
-rwxrwxrwx. 1 root root 0 7月  22 03:52 2
-rwxrwxrwx. 1 root root 0 7月  22 03:52 3
-rwxrwxrwx. 1 root root 0 7月  22 03:52 4
-rwxrwxrwx. 1 root root 0 7月  22 03:52 5
-rwxrwx---. 1 root root 0 7月  22 03:52 6
-rwxrwx---. 1 root root 0 7月  22 03:52 7
-rwxrwx---. 1 root root 0 7月  22 03:52 8
-rwxrwx---. 1 root root 0 7月  22 03:52 9

[francis@localhost ~]$ cp -vr /mytext/ /app/hello  1>correct.txt 2>error.txt
[francis@localhost ~]$ cat correct.txt 
"/mytext/" -> "/app/hello/mytext"
"/mytext/1" -> "/app/hello/mytext/1"
"/mytext/2" -> "/app/hello/mytext/2"
"/mytext/3" -> "/app/hello/mytext/3"
"/mytext/4" -> "/app/hello/mytext/4"
"/mytext/5" -> "/app/hello/mytext/5"
"/mytext/6" -> "/app/hello/mytext/6"
"/mytext/7" -> "/app/hello/mytext/7"
"/mytext/8" -> "/app/hello/mytext/8"
"/mytext/9" -> "/app/hello/mytext/9"
"/mytext/10" -> "/app/hello/mytext/10"
[francis@localhost ~]$ cat error.txt 
cp: 无法打开"/mytext/6" 读取数据: 权限不够
cp: 无法打开"/mytext/7" 读取数据: 权限不够
cp: 无法打开"/mytext/8" 读取数据: 权限不够
cp: 无法打开"/mytext/9" 读取数据: 权限不够
[francis@localhost ~]$ cp -vr /mytext/ /app/hello 1>correct.txt 2>error.txt &> both.txt
[francis@localhost ~]$ cat both.txt 
"/mytext/1" -> "/app/hello/mytext/1"
"/mytext/2" -> "/app/hello/mytext/2"
"/mytext/3" -> "/app/hello/mytext/3"
"/mytext/4" -> "/app/hello/mytext/4"
"/mytext/5" -> "/app/hello/mytext/5"
"/mytext/6" -> "/app/hello/mytext/6"
cp: 无法打开"/mytext/6" 读取数据: 权限不够
"/mytext/7" -> "/app/hello/mytext/7"
cp: 无法打开"/mytext/7" 读取数据: 权限不够
"/mytext/8" -> "/app/hello/mytext/8"
cp: 无法打开"/mytext/8" 读取数据: 权限不够
"/mytext/9" -> "/app/hello/mytext/9"
cp: 无法打开"/mytext/9" 读取数据: 权限不够
"/mytext/10" -> "/app/hello/mytext/10"

 

追加重定向
>> 原有内容基础上,追加内容

命令1 | tee[-a ] 文件名| 命令2
把命令1的STDOUT保存在文件中,做为命令2的输入
-a 追加

以上是关于linux 从入门到跑路–重定向 管道的主要内容,如果未能解决你的问题,请参考以下文章

linux 从入门到跑路

linux 从入门到跑路

linux 从入门到跑路-文件管理

linux 从入门到跑路 - rpm ,yum , dnf (软件包管理三兄弟)

ubuntu从入门到跑路

活动总结OpenResty从入门到跑路