重定向的含义
输出结果除了直接被 print 到屏幕上,还可以通过重定向 被写入文件
基本语法如下
tree ~/ > tree.txt
#有输出的命令 > 文件路径覆盖与追加
>可以将输出覆盖进文件:如文件不存在,则创建文件;如文件存在,则覆写文件
touch xibei.md
echo "xibei we love you" > xibei.md>>可以将输出追加在文件末尾
zhoux@westnorth:~$ cat xb.md
xibei we love you
zhoux@westnorth:~$ echo "xibei you are lovely" >> xb.md
zhoux@westnorth:~$ cat xb.md
xibei we love you
xibei you are lovely
zhoux@westnorth:~$ echo "xibei is a cat" > xb.md
zhoux@westnorth:~$ cat xb.md
xibei is a catWarning
小心使用
>,以免文件丢失
输出内容的选择
以一个实例拓展 > 的内容
创建一个测试目录与文件,分别写入内容,并关掉其中一个文件的权限
zhoux@westnorth:~/linux_practice$ ls -lh ./xibei.dir/
total 8.0K
---------- 1 zhoux zhoux 15 Dec 4 20:56 xibei.1.txt
#可见xibei.1.txt没有读取权限
-rw-r--r-- 1 zhoux zhoux 16 Dec 4 20:56 xibei.2.txt读取所有文件,可见一个能被读取,另一个不行
- 有权限的:标准输出 1
- 没有权限的:标准错误信息 2
zhoux@westnorth:~/linux_practice$ cat ./xibei.dir/*
cat: ./xibei.dir/xibei.1.txt: Permission denied #这叫做标准错误信息(2)
xibei is lovely #这叫做标准输出(1)将输出结果重定向至 log 文件(测试用的日志)中, 发现只有标准输出 1 被重定向,而错误信息 2 没有
zhoux@westnorth:~/linux_practice$ cat ./xibei.dir/* > ./xibei.dir/log
cat: ./xibei.dir/xibei.1.txt: Permission denied
zhoux@westnorth:~/linux_practice$ cat ./xibei.dir/log
xibei is lovely对同样的 cat 输出结果,可通过在 > 前加入 1,2 作以下操作
cat ./xibei.dir/* &> log4 #将1和2重定向到一个文件
cat ./xibei.dir/* 1> log1 #同上,只重定向1(正常)
cat ./xibei.dir/* 2> log2 #只重定向2(错误)
cat ./xibei.dir/* 1> std.out 2>std.erro #分别将1和2重定向到两个文件
cat ./xibei.dir/* > log3 2>&1 #将1和2重定向到一个文件(麻烦的方法)Tips
数字与
>不能有空格