重定向

输出重定向

输出重定向的语法为:

  1. command > file

是将命令的正确输出结果保存到指定的文件中,重定向输出符号是”>”和“>>”,分别用于覆盖和追加文件,若重定向的文件不存在,则会创建文件,若要保存原来文件内容,需要使用”>>”,是追加新内容到文件底部

# echo "hello world" > readme.txt
# cat readme.txt
hello world
# echo "hello java" >> readme.txt
# cat readme.txt
hello world
hello java

输入重定向

和输出重定向一样,Unix 命令也可以从文件获取输入,语法为:

command < file

错误重定向

错误重定向是把执行命令中出现的错误保存到指定文件,而不是显示到屏幕上来,错误重定向使用”2>”操作符,

$ ls test.txt 2>error.log
$ cat error.log
ls: test.txt: No such file or directory

/dev/null空文件
可以将无关紧要的信息输出到空文件中
&>
当命令输出的结果可能既包含标准输出又包含错误输出信息时,可以使用“&>”操作符合将两类输出信息保存到同一个文件。

总结

  • 标准输入文件(stdin):stdin的文件描述符为0,Unix程序默认从stdin读取数据。
  • 标准输出文件(stdout):stdout 的文件描述符为1,Unix程序默认向stdout输出数据。
  • 标准错误文件(stderr):stderr的文件描述符为2,Unix程序会向stderr流中写入错误信息。
    命令    说明
    command > file    将输出重定向到 file。
    command < file    将输入重定向到 file。
    command >> file    将输出以追加的方式重定向到 file。
    n > file    将文件描述符为 n 的文件重定向到 file。
    n >> file    将文件描述符为 n 的文件以追加的方式重定向到 file。
    n >& m    将输出文件 m 和 n 合并。
    n <& m    将输入文件 m 和 n 合并。
    << tag    将开始标记 tag 和结束标记 tag 之间的内容作为输入。