linux 文件重定向

相关扩展

nohup | 所属包:coreutils
	 	功能说明:该命令可以让用户在退出系统之后,继续于后台中执行程序。注意nohup命令不会自动将程序放到后台执行,因此需要配合shell的特殊字符'&'使用,'&'放在一行指令的最后,如'nohup command &'

文件重定向原理

要想明白文件重定向,首先需要理解linux中的所有进程,是有3个预设文件描述符的,文件描述符映射到文件指针,文件指针指向具体文件:
fd0 |默认映射到标准输入文件指针->(/dev/stdin)
fd1 |默认映射到标准输出文件指针->(/dev/stdout)
fd2 |默认映射到标准错误文件指针->(/dev/stderr)

所谓标准输入文件,从终端读取信息
所谓标准输出文件,将结果输出至终端
所谓标准错位文件,将错误输出至终端
所谓重定向,就是改变fd对应的文件指针

重定向符号

重定向中 文件有两种表示方式:'文件名'或者'&文件描述符'

> |输出重定向,将[左侧]command结果输入到[右侧]文件
>>|输出重定向,将[左侧]command结果追加到[右侧]文件
< |输入重定向,将[右侧]文件作为[左侧]command的输入
<<|输入重定向,从标准输入中读入,直到遇到[右侧]分界符停止,作为[左侧]command的输入
n>&m |将n映射的文件修改为[m映射的文件]

重定向应用

典型用法

$ cat <<EOF
> 111
> 222
> EOF
预期输出
111
222

cat <file_list等同于
cat 0<file_list
1.将fd0映射的文件修改为file_list
2.执行cat,从fd0映射的file_list文件读取数据
PS:输入重定向符'<',[左侧]默认为fd0

echo 'hello' >file_log等同于
echo 'hello' 1>file_log
1.将fd1映射的文件修改为file_log
2.执行echo,将'hello'字串写入fd1映射的file_log文件
PS:输出重定向符'>',[左侧]默认为fd1

2>/dev/null
1.将fd2映射的文件修改为/dev/null

2>&1 >/dev/null等同于
2>&1 1>/dev/null
1.将fd2映射的文件修改为/dev/stdout
2.将fd1映射的文件修改为/dev/null

>/dev/null 2>&1等同于
1>/dev/null 2>&1
1.将fd1映射的文件修改为/dev/null
2.将fd2映射的文件修改为[fd1映射的文件]
效果:fd1&fd2都映射到/dev/null
PS:此用法较为常见'>/dev/null 2>&1',较为麻烦,故有简写:'&>/dev/null'或'>&/dev/null'

应用扩展…(待续)

标准输入
read |从键盘/文件中读取文本行,并赋值给变量
标准输出
echo |将文本行/变量输出到标准输出
cat  |将文件内容输出到标准输出
tee  |将结果输出到标准输出,另一个副本输出到相应文件
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值