shell的重定向

shell中>,>>,<,<<这四个符号都用来重定向。
其中,>,>>是用于重定向输出;
<,<<用于重定向输入。

1. >的用法

常见用法,将错误输出重定向到/dev/null文件,起到屏蔽错误信息输出的作用

#由于没有xxx这个文件,所以会报错
root@ubuntu:~# ls xxx
ls: 无法访问xxx: 没有那个文件或目录

#由于已经将错误输出重定向,所以即使没有xxx这个文件也不会报错
root@ubuntu:~# ls xxx 2>/dev/null

注意,>两端不能有空格。
如果想要将标准输出也屏蔽,那就

root@ubuntu:~# touch aa #创建文件aa
root@ubuntu:~# ls aa
aa

#将错误输出重定向/dev/null,将标准输出重定向到错误输出。这样1和2都重定向到了/dev/null。
root@ubuntu:~# ls aa 2>/dev/null 1>&2

#还有一种等价方法是
root@ubuntu:~# ls aa &>/dev/null

2. >>的用法

>>和>的区别是,>会将右侧文件的内容清空再写入。而>>不会清空,而是追加写入。

root@ubuntu:~# ls aa &>aa #>将aa的内容清空了,然后将新的内容写进aa
root@ubuntu:~# cat aa
aa
root@ubuntu:~# ls aa &>>aa #>>没有清空aa的内容,并追加写入新的内容
root@ubuntu:~# cat aa
aa
aa

3. <的用法

<会重定向标准输入,可以将标准输入重定向到某个文件。这样就可以读取某个文件的内容来代替键盘输入了。

root@ubuntu:~# echo "from file c" > c
root@ubuntu:~# cat c
from file c
# d < c表示将文件c中的内容输入到文件d中
root@ubuntu:~# cat > d < c
root@ubuntu:~# cat d
from file c

#如果没有 < c的话,就要从键盘输入
root@ubuntu:~# cat > d
input from keyboard#通过键盘敲出这几个字母
#然后按ctrl+d结束本次输入
root@ubuntu:~# cat d
input from keyboard

4. <<的用法

<<代表结束输入。使用<<指定结束输入标志,就可以不用手动键入ctrl+d来结束输入

 # <<"eof" 表明遇到"eof"字符串时结束本次输入
root@ubuntu:~# cat > bb <<"eof"
> line1
> line2
> eof #键入eof并敲击回车后,本次输入结束
root@ubuntu:~# cat bb 
line1
line2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Shell中,重定向输出是一种将命令的输出从显示器改为输出到其他地方的方法。通过重定向输出,我们可以将命令的结果保存到文件中或者将输出传递给其他命令进行处理。 重定向输出有两种方式:输出重定向和错误重定向。 1. 输出重定向:输出重定向是将命令的输出保存到文件中。可以使用大于符号(>)来实现输出重定向。例如,将命令的输出保存到一个文件中可以使用以下命令: ``` command > file ``` 这将把命令的输出写入到指定的文件中,如果该文件不存在,则会创建该文件;如果文件存在,则会覆盖原有内容。 2. 错误重定向:错误重定向是将命令的错误输出保存到文件中。错误输出通常被称为标准错误(stderr)。可以使用大于号和和符号(2>)来实现错误重定向。例如,将错误输出保存到一个文件中可以使用以下命令: ``` command 2> file ``` 这将把命令的错误输出写入到指定的文件中,如果该文件不存在,则会创建该文件;如果文件存在,则会覆盖原有内容。 此外,还可以将输出和错误重定向到同一个文件中。可以使用大于号和和符号(&>)来实现将输出和错误输出都重定向到同一个文件中。例如: ``` command &> file ``` 这将把命令的输出和错误输出都写入到指定的文件中。 综上所述,重定向输出是一种将命令的输出从显示器改为输出到其他地方(如文件)的方法。通过输出重定向和错误重定向,我们可以灵活地处理命令的输出结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值