linux 重定向

执行指令,由档案读入资料,经过处理将资料输出到屏幕。
读入资料,叫做standard input, 资料输出到屏幕,叫做standard output或standard error output。
输出到屏幕分为两种,指令执行成功,叫做standard output, 执行失败,叫做standard error output,这两种都会输出到屏幕。

为了将这两种输出分开,可以使用资料重定向功能,将输出传输到其他档案中。

(单箭头表示覆盖,双箭头表示增加)
stdout: 使用>或>>,符合为1
stderr: 使用2>或2>>,符号为0

例如 ll / > /home/text.txt 就将本应该在屏幕显示的内容,都写入到/home/text.txt文档中,屏幕上没有任何显示了
使用find /home -name .bashrc 时,屏幕输出
find: “/home/bbip”: 权限不够
/home/leadcom/.bashrc
find: “/home/lost+found”: 权限不够
其中有正确输出,也有错误输出
如果只使用stdout,会将正确输出指定到文件,错误输出仍显示在屏幕
find /home -name .bashrc > /home/find_test.txt
要想将正确输出和错误输出都指定到文件,则stdout和stderr都使用
find /home -name .bashrc >/home/find_test.txt 2>/home/find_test_err.txt

如果想在屏幕上不显示错误信息,则可以将错误信息重定向到/dev/null
find /home -name .bashrc 2>/dev/null
如果想将正确和错误信息都写入一个文件,且保证原来的顺序,则使用特殊写法
find /home -name .bashrc > /home/find_test_all.txt 2>&1 (注意是在原来stdout的写法最后增加2>&1表达式)
或者find /home -name .bashrc &> /home/find_test_all.txt (注意是在原来stdout的写法中间增加&符)

有输出,就会有输入,它代表将原本由键盘输入的资料,改为由档案内容来取代
(单箭头表示指定输入文件,双箭头表示结束字符)
stdin: 使用<或者<<,符号为0

什么是键盘输入
cat > /home/catfile, 执行后用键盘输入testing,按ctrl+d,就会将键盘输入的testing字符写入文件中
若想用文档内容替换键盘输入,使用stdin:
cat > /home/catfile < /home/leadcom/.bashrc
执行后就将/home/leadcom/.bashrc的内容写入到/home/catfile中
cat > /home/catfile << eof
表示检测到eof字符时,结束输入

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值