linux 重定向文件,Linux 文件重定向

在 Linux 系统中:

标准输入(stdin)默认为键盘输入;标准输出(stdout)默认为屏幕输出;标准错误输出(stderr)默认也是输出到屏幕。

Linux Shell 环境中用 "" 表示标准输出

0、1、2分别表示: 标准输入,标准输出,标准错误信息输出

如 2>a.txt 表示将错误信息输出到文件a.txt中 。

还可以在这三个标准输入、输出之间实现重定向,

如将错误信息重定向到标准输出,可以用 2>&1 来实现。

***************************************************************************

常用文件重定向命令

command > filename 把标准输出重定向到一个新文件中

command 1 > fielname 把标准输出重定向到一个文件中

command 2 > filename 把标准错误重定向到一个文件中

command > filename 2>&1 把标准输出和标准错误一起重定向到一个文件中

command &> filename 把标准输出和标准错误一起重定向到一个文件中

command >& filename 把标准输出和标准错误一起重定向到一个文件中

"&"在这里代表标准输出和标准错误,这里无论是正常输出还是错误信息都写到filename文件中。

command >> filename 把标准输出重定向到一个文件中(追加)

command 2 >> filename 把标准输出重定向到一个文件中(追加)

command >> filename 2>&1 把标准输出和标准错误一起重定向到一个文件中(追加)

command < filename >filename2 把command命令以filename文件作为标准输入,以filename2文件作为标准输出

command < filename 把command命令以filename文件作为标准输入

command << delimiter 把从标准输入中读入,直至遇到delimiter分界符

command command >&m 把标准输出重定向到文件描述符m中

command command >&- 关闭标准输出

command ncommand n>&- 表示将 n 号输出关闭

***************************************************************************

Linux下还有一个特殊的文件/dev/null,它就像一个无底洞,所有重定向到它的信息都会消失得无影无踪。

这一点非常有用,当我们不需要回显程序的所有信息时,就可以将输出重定向到/dev/null。

如果想把正常输出和错误信息都不显示,则要把标准输出和标准错误都重定向到/dev/null, 例如:

# ls 1>/dev/null 2>/dev/null

还有一种做法是将错误重定向到标准输出,然后再重定向到 /dev/null,例如:

# ls >/dev/null 2>&1

注意:此处的顺序不能更改,否则达不到想要的效果,此时先将标准输出重定向到 /dev/null,然后将标准错误重定向到标准输出,

由于标准输出已经重定向到了/dev/null,因此标准错误也会重定向到/dev/null 。

>log 表示把标准输出重新定向到文件log中

>& log 表示把标准输出和错误输出产生的任何信息都定向到文件log中,相当于 >log 2>&1

>>log 将命令执行的结果追加到指定的文件log中。

>>log 2>&1 将命令执行时屏幕上所产生的任何信息追加到指定的文件log中。

将所有的输出都存储到文件all_result中:

$ find /home -name lost* > all_result 2>& 1

先将标准错误输出也重定向到标准输出中,再将标准输出重定向到 all_result 这个文件中。

还有一种简便的写法如下:

$ find /home -name lost* >& all_result

看看以下命令会有什么结果?

$ find /home -name lost* > all_result 1>& 2

$ find /home -name lost* 2> all_result 1>& 2

$ find /home -name lost* 2>& 1 > all_result[@more@]

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值