shell——文件重定向
文 件 文件描述符
输入文件—标准输入0,输出文件—标准输出 1,错误输出文件—标准错误 2
grep命令没有找到该文件,缺省地向终端输出了一个错误信息。现在让我们把错误重定向到文件/dev/null中(实际上是系统的垃圾箱):
$ grep "trident" missiles 2>/dev/null
这样所有的错误输出都输送到了/dev/null,不再出现在屏幕上。
$ grep "standard" * > grep.out 2>&1等同于
$ grep "standard" * 1> grep.out 2>&1
grep命令的标准输出和标准错误都被重定向到grep.out文件中。通过使用 2 > & 1就可以做到这一点,
其它例子:
[hadoop@localhost dzztest]$ ll
total 28
-rwxrwxrwx 1 hadoop hadoop 66 Sep 9 21:48 a1.sh
-rwxrwxrwx 1 hadoop hadoop 109 Sep 9 20:10 a.sh
[hadoop@localhost dzztest]$ ll>22 1>&2把标准输入到22,又把标准输出到屏幕,即都输出到窗口,相当于ll
total 28
-rw-rw-r-- 1 hadoop hadoop 0 Sep 10 23:12 22
-rwxrwxrwx 1 hadoop hadoop 66 Sep 9 21:48 a1.sh
-rwxrwxrwx 1 hadoop hadoop 109 Sep 9 20:10 a.sh
[hadoop@localhost dzztest]$ ll 1>33 2>&1相当于ll 1>33,相当于ll>33,
[hadoop@localhost dzztest]$ ll
total 32
-rw-rw-r-- 1 hadoop hadoop 0 Sep 10 23:12 22
-rw-rw-r-- 1 hadoop hadoop 553 Sep 10 23:18 33
-rwxrwxrwx 1 hadoop hadoop 66 Sep 9 21:48 a1.sh
-rwxrwxrwx 1 hadoop hadoop 109 Sep 9 20:10 a.sh
-------------------------------------------------------------------
<&,从一个句柄读取输入并将其写入到另一个句柄的输出中
2022-9-25