Linux学习笔记:重定向>和>>

时间:2024-01-01 18:13:51

本文参考 https://www.cnblogs.com/piperck/p/6219330.html

重定向命令 > 和 >>

将命令的输出结果存储在指定文件中。

例如下面的例子就是将 ls 的结果输出到一个 result.txt 文件中,如果文件不存在,会在当前目前创建一个。(如果是特定文件夹中,如果文件夹不存在,不会自动创建,会报错)

ls > result.txt

二者的区别是:> 是覆盖原始文件; >>是追加到文件中。

另外两个相关的命令是:1> 的作用是将执行命令后的正确结果保存到指定文件,2>是将错误的信息保存到指定文件。

例如下面的命令将python脚本test.py执行后的结果,正确的保存进right.txt,而错误的输出被重定向到了wrong.txt。

python ./test.py 1> right.txt 2> wrong.txt

test.py的内容如下:

#!/usr/bin/env python3
# -*- coding: utf-8 -*- if __name__ == '__main__':
print('hello')
int('world')

如果不这样区分,写成下面这样

python ./test.py > result.txt

那么只保存了正确的结果,错误的信息被打印到标准输出上面。

如果想让错误也重定向到和1相同的文件,可以这这样写:

python ./test.py 1> result.txt 2>&1

对应的 1>> 和 2>> 作用和上面类似,区别还是和上面类似一个是覆盖,一个是追加。

< 的作用是将原本应该由键盘输入的数据经由文件读入。