linux重定向输出相反,> 输出重定向

重定向输出 >

>> 追加

目 录1、 >正确定向等同于1>

2、 2> 错误定向

3. &> 把错误导成正确的{洗钱}

4. 正确的变成错误的

5. > 覆盖

6. 举一反三

最近学的命令中学到了一些很有意思的命令,分享一下b0af8b58ad799f79cee12a6965b89eb9.gif

> 重定向输出

最初见到这个符号是在学习终端的时候,那么各个终端之间是如何交流的呢?那么就用到了这个符号>

在这里采取的是远程控制的方法,所以以虚拟终端为例

对于两个终端 dev/pts/0   /dev/pts/1

设备dev/pts/0给设备/dev/pts/1发出Hello!

在设备/dev/pts/0上发出命令     echo Hello! > /dev/pts/1

8f2a3451f43497a0706ed33d00f326fc.png

那么便在设备/dev/pts/1上收到消息Hello!(类似于qq消息中的私聊)

61f1facd683ab8e66220fa214e9ac7ca.png

还有另一种广播的方式

wall Hi

每个终端都会收到打招呼 Hi(类似于qq消息中的群发)。很有意思吧,可以试一下。6ed347b036a34976dec73ba60a4edf65.png

1、 > 正确定向等同于 1>

我们一般键盘输入信息,输出的结果都是默认在终端上输出

查看I/O 设备

cd /dev/fd/

ls –l

0  标准输入 (默认输入来自键盘)

1  标准输出  (默认输出都是终端)

2  标准错误  (默认输出都是终端)

那么当我们不想输出在终端上,想导出一个文件,方便以后查看,便需要输出重定向了。> 的作用就是把原本要输出在终端上的信息重定向导出到指定的地方。

我们知道/etc/passwd 存放着我们用户登录的信息,而/app/passwd 这个是不存在的,我们就以这两个为例子,终端还是dev/pts/0   /dev/pts/1

单独查看会显示一下结果

ls /app/passwd  /etc/passwd

64e9bb0bb8b5b0483fd1391ffe33ddc2.png

ls /app/passwd /etc/passwd > /dev/pts/1

708651a97978c60d35279452d27d4f89.png

d0812384244de8c62a0d69eb16187505.png

结论: 可以看出在/dev/pts/0 上只显示出错误的结果,因为/dev/pts/0把正确结果重定向输出到/dev/pts/1    > 只导出了正确的结果

2、  > 错误定向

还是相同的例子

ls /app/passwd /etc/passwd  2> dev/pts/1

6afe6c22e6217c7e890a9b0965ccccae.png

0f12a88289b0156ac7ff0494216bd1be.png

结论:可以看出可以看出在/dev/pts/0上只显示出正确的结果,/dev/pts/0把错误结果重定向输出到/dev/pts/1    2> 只导出了错误的结果

那么有把正确和错误的都输出去吗,当然可以

3、  &> 把错误导成正确的{洗钱}

(1) ls /app/passwd /etc/passwd > dev/pts/1  2>&1(老一代)

1e1ea0bd03e67fc356b3365e1d924a6c.png

3b7a97df58ae8838d03528e1fecd0674.png

结论:可以看出在/dev/pts/0上不显示,/dev/pts/0把全部重定向输出到/dev/pts/1,2>&1 一般在老版本的CentOS上用,接下来的是在新的版本上才有的。

(2)ls /app/passwd /etc/passwd  &> /dev/pts/1

db4edf6712eb37e8a4ddb6c55e25ab28.png

11a53c07bab69afa65a7e562857c1d4c.png

4、当然还可以把正确的变成错误的

ls /app/passwd/etc/passwd > dev/pts/1  1>&2

9814ad5a043c13de0a32f83c705c2ac8.png

把正确的变成错误的都显示出来

5、 >  覆盖

(1)例:  > a.txt  =touch a.txt 创建新文件a.txt

71270316bf8f177da4e1217067148c70.png

(2)当已有文件存在时会怎样呢??

现在就以a.txt为例,首先我们在a.txt中写入内容Hello

echo Hello >a.txt

47f0705b78e9dac2fbc3b7ed6703d629.png

然后我们再将Hi apple!以同样的方式再写一遍

echo Hi apple!>a.txt

6e7819c3674a833fb68161671786ece1.png

(3)那么我们现实中必定会有不想覆盖的文件,而我们想要继续在原文件后面追加,那么便需要>>了。

在后面追加Hello water

echo Hello water >>a.txt

e948e5eaa4925fc0a7156814d512db53.png

(4)如果在工作中,我们想要在文件中追加内容时>>,却不小心只写入> 就执行了,那么我们的文件被覆盖了,因此就有了,禁止覆盖的命令,set –C

让我们试一下吧,首先输入set–C 然后再输入覆盖命令

c9dfde5efdeeaaa3ff108665b1a1ae4b.png

如果我们想一次强制覆盖   >|

073ac4313efe1867967fb4cf07853844.png

当然我们也可以解除这种禁止 set +C ,很好理解禁止 –C  ,解除+C

625cc6f4a8429a5973226f0309217d08.png

6、当然可以举一反三

>>  追加正确的内容

2>> 追加错误的内容

&>> 全部追加

() 合并 (echo abc ;echo 123)> b.txt 可以一次显示两条信息

ded07c358665db3684613733f0858c42.png

结合以前所学的符号,命令,都会有新的发现。大家可以共同探讨。efc378b71c550dbc48a53c7f3af3fea6.gif

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值