重定向命令事件

每个命令都可以使用三个通道输入或输出:

要重定向这些通道,有以下可行的操作方式:

命令 > 文件

将该命令的输出保存为文件,将删除现有文件。例如,ls 命令会将其输出写入文件 listing.txt

ls > listing.txt
命令 >> 文件

将命令输出追加到文件。例如,ls 命令会将其输出追加到文件 listing.txt

ls >> listing.txt
命令 < 文件

读取该文件作为给定命令的输入。例如,read 命令会将此文件的内容读入变量:

read a < foo
命令 1 | 命令 2

将左侧命令的输出重定向为右侧命令的输入。例如,cat 命令会输出文件 /proc/cpuinfo 的内容。grep 使用此输出仅过滤出包含 cpu 的行:

cat /proc/cpuinfo | grep cpu

每个通道都有一个文件描述符:0(零)表示标准输入,1 表示标准输出,2 表示标准错误。允许在 <> 字符前插入此文件描述符。例如,以下行搜索以 foo 开头的文件,但通过将错误重定向到 /dev/null 而抑制错误。

find / -name "foo*" 2>/dev/null