shell输入输出重定向(不存在文件会自动创建)
2017-11-08 22:00
996 查看
1.覆盖式输出重定向:>
cat for.sh > 1.txt
cat for.sh > 1.txt
cat for.sh > 1.txt
只写了一次,每次都先清除之前的内容(注意不只是覆盖,而是清空原文件内容),然后再写入下一次结果
2.追加式输出重定向:>>
cat for.sh > 1.txt
cat for.sh > 1.txt
cat for.sh > 1.txt
追加式,将for.sh的内容写到1.txt写3遍
3.错误输出重定向:2>
仅重定向错误信息;
1>及1>>是正确重定向,也是默认的重定向,分别等价于(>和>>)
而cat for.sh 2> 2.txt的意思是如果cat for.sh的错误信息重定向到2.txt,如果没有错误就不重定向,也是覆盖式错误重定向;
2>>是追加式错误重定向
4.将正确和错误信息同时重定向(一般在用在脚本中)
既有正确信息又有错误提示,这时输出重定向方法如下:
1)覆盖式输出重定向:
bash a.sh &> c.txt
或者bash a.sh 1>c.txt 2>&1
2)追加式重定向(1追加式,2沿着1重定向,是否追加取决于1)
bash a.sh 1>> c.txt 2>&1
例子:如下面的脚本文件:a.sh的内容如下:
(1)bash for.sh > c.txt
或者
bash for.sh 1> c.txt
c.txt本来为空,用>正确重定向只是把正确信息写入到了c.txt中,错误信息还是在屏幕中打印,且为覆盖式的最后c.txt中一个一次结果
(2)bash for.sh 2> d.txt
d.txt本来为空,用2>只把错误信息覆盖式的写入到了d.txt(不存在会自动创建),正确信息输出到屏幕上
(3)bash for.sh 1>> e.txt
e.txt本来不存在,用追加式重定向把正确信息追加到e.txt中,若e.txt之前存在内容也不会清空
(4)bash for.sh 2>> f.txt
f.txt原来存在三行数据,用2>>追加,不影响之前数据,且只追加错误信息
(5)bash for.sh &> e.txt
或者
bash for.sh 1> e.txt 2>&1
或者
bash for.sh 2> e.txt 1>&2
将正确信息和错误信息同时添加到e.txt中:这种方法只能覆盖式追加
,e.txt中原来有一行文字,用&>将for.sh的正确和错误信息同时添加到e.txt中,但是之前的那行信息被清掉了
(6)追加式正确&错误重定向:
bash for.sh 1>> h.txt 2>&1
或者
bash for.sh 2>> h.txt 1>&2
cat for.sh > 1.txt
cat for.sh > 1.txt
cat for.sh > 1.txt
只写了一次,每次都先清除之前的内容(注意不只是覆盖,而是清空原文件内容),然后再写入下一次结果
2.追加式输出重定向:>>
cat for.sh > 1.txt
cat for.sh > 1.txt
cat for.sh > 1.txt
追加式,将for.sh的内容写到1.txt写3遍
3.错误输出重定向:2>
仅重定向错误信息;
1>及1>>是正确重定向,也是默认的重定向,分别等价于(>和>>)
而cat for.sh 2> 2.txt的意思是如果cat for.sh的错误信息重定向到2.txt,如果没有错误就不重定向,也是覆盖式错误重定向;
2>>是追加式错误重定向
4.将正确和错误信息同时重定向(一般在用在脚本中)
既有正确信息又有错误提示,这时输出重定向方法如下:
1)覆盖式输出重定向:
bash a.sh &> c.txt
或者bash a.sh 1>c.txt 2>&1
2)追加式重定向(1追加式,2沿着1重定向,是否追加取决于1)
bash a.sh 1>> c.txt 2>&1
例子:如下面的脚本文件:a.sh的内容如下:
(1)bash for.sh > c.txt
或者
bash for.sh 1> c.txt
c.txt本来为空,用>正确重定向只是把正确信息写入到了c.txt中,错误信息还是在屏幕中打印,且为覆盖式的最后c.txt中一个一次结果
(2)bash for.sh 2> d.txt
d.txt本来为空,用2>只把错误信息覆盖式的写入到了d.txt(不存在会自动创建),正确信息输出到屏幕上
(3)bash for.sh 1>> e.txt
e.txt本来不存在,用追加式重定向把正确信息追加到e.txt中,若e.txt之前存在内容也不会清空
(4)bash for.sh 2>> f.txt
f.txt原来存在三行数据,用2>>追加,不影响之前数据,且只追加错误信息
(5)bash for.sh &> e.txt
或者
bash for.sh 1> e.txt 2>&1
或者
bash for.sh 2> e.txt 1>&2
将正确信息和错误信息同时添加到e.txt中:这种方法只能覆盖式追加
,e.txt中原来有一行文字,用&>将for.sh的正确和错误信息同时添加到e.txt中,但是之前的那行信息被清掉了
(6)追加式正确&错误重定向:
bash for.sh 1>> h.txt 2>&1
或者
bash for.sh 2>> h.txt 1>&2
相关文章推荐
- Shell输入输出重定向:Shell Here Document,/dev/null文件
- 模拟dos中的xcopy功能,实现文件的复制,当子文件夹不存在时自动创建
- Linux之Shell学习(十)Shell输入输出重定向、文件包含
- shell脚本之创建文件,自动复制粘贴文件
- Java API 自带的日志管理,可配置文件路径,并自动创建不存在的目录
- C# 创建文件时,文件夹不存在,如何自动创建文件夹
- PHP检查文件存不存在,不存在自动创建,读取文件内容
- Shell输入输出重定向:Shell Here Document,/dev/null文件
- Shell:函数、输入输出重定向、文件包含
- Shell输入输出重定向:Shell Here Document,/dev/null文件
- 自动创建数据库并按顺序导入sql文件的shell脚本
- Shell输入输出重定向:Shell Here Document,/dev/null文件
- Shell输入输出重定向:Shell Here Document,/dev/null文件
- 【java】当文件目录不存在时自动创建文件目录
- Shell输入输出重定向:Shell Here Document,/dev/null文件 .sh文件包含执行
- 用shell脚本写出检测/tmp/size.log文件,如果存在显示它的内容,不存在则创建一个文件将创建时间写入
- PHP检查文件存不存在,不存在自动创建,读取文件内容
- 二十二、Shell输入输出重定向:Shell Here Document,/dev/null文件
- Shell输入输出重定向:Shell Here Document,/dev/null文件
- Java API 自带的日志管理,可配置文件路径,并自动创建不存在的目录