重定向与追加

1、>和>>

> 【重定向】
    如果文件不存在,则创建,并将内容输入到文件;
    如果文件存在,则先清空文件,然后将内容输入到文件;

>> 【追加】
    如果文件不存在,则创建,并将内容输入到文件;
    如果文件存在,则将内容添加到原文件内容之后;

示例:

# cat /root/test
   123456

# echo "abcdefg" > /root/test
# cat /root/test
   abcdefg           // 原文件被覆盖;

# echo “123456” >> /root/test
# cat /root/test
abcdefg
123456                // 在原文件后面追加;

2、标准输出与错误输出

在 shell 程序中,最常使用的 fd (file descriptor) ,文件描述符有三个:

0(stdin):标准输入,是一个文件描述符
1(stdout):标准输出, 是一个文件描述符
2 (stderr):错误输出,是一个文件描述符

我们创建一个测试目录gemini,目录中只创建一个文件it01.txt,
然后执行命令:
# ls -l it01.txt 回显结果:正确,我们叫做“标准输出”,用描述符1表示
# ls -l it02.txt 回显结果:错误,我们叫做“错误输出”,用描述符2表示


执行命令不要任何回显结果,把回显结果重定向到对应文件中
# ls -l it01.txt it02.txt 1>file.out 2>file.err


“1>” 可以简略成“>”

3、"1>&2" 和 "2>&1"

【2>&1】
把“错误输出,重定向到,标准输出”,需要先定义“标准输出到哪个文件”

1,标准输出,回显结果:正确
2,错误输出,回显结果:错误

可能大家会纳闷,不应该写成“2>1”吗?
为什么多了个“&”?
&只是一个特殊符号。

# ls -l it01.txt it02.txt 1>file.out 2>1

如果不加“&”,“2>1”的意思是,把“错误输出”重定向到“文件名是1的文件中”


# ls -l it01.txt it02.txt 1>file.out 2>&1

加上“&”,才能实现“把标准输出重定向file.out,错误输出重定向到标准输出”

【1>&2】
把“标准输出,重定向到,错误输出”,需要先定义“错误输出到哪个文件”

# ls -l it01.txt it02.txt 2>file.err 1>&2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值