欧洲中部时间 28 年 20 月 23 日星期四 07:2002:XNUMX
日期 命令通常会将最后一行放在屏幕上; 现在它被附加到文件中 愿望清单.
5.2. 高级重定向功能
5.2.1. 文件描述符的使用
有三种类型的 I/O,每种都有自己的标识符,称为文件描述符:
• 标准输入:0
• 标准输出:1
• 标准误差:2
在下面的描述中,如果省略了文件描述符编号,并且重定向操作符的第一个字符是<,则重定向是指标准输入(文件描述符0)。 如果重定向运算符的第一个字符是 >,则重定向指的是标准输出(文件描述符 1)。
一些实际的例子会更清楚地说明这一点:
ls> 目录 2>&1
将标准输出和标准错误都指向文件 目录, 而命令
2>&1> 目录
只会将标准输出定向到 目录. 这对程序员来说可能是一个有用的选择。
这里的事情变得相当复杂,不要将此处的 & 符号的使用与第 4.1.2.1 节中的使用混淆,其中 & 符号用于在后台运行进程。 在这里,它只是作为一个指示,后面的数字不是文件名,而是数据流所指向的位置。 另请注意,大于号不应与文件描述符的编号用空格分隔。 如果将其分开,我们将再次将输出指向一个文件。 下面的示例演示了这一点:
[南希@华硕 /var/tmp]$ ls 2> 时间
[南希@华硕 /var/tmp]$ ls -l tmp
-rw-rw-r-- 1 nancy nancy 0 7 月 12 日 58:XNUMX tmp
[南希@华硕 /var/tmp]$ ls 2 > 时间
ls: 2: 没有这样的文件或目录
[南希@华硕 /var/tmp]$ ls 2> 时间
[南希@华硕 /var/tmp]$ ls -l tmp
-rw-rw-r-- 1 nancy nancy 0 7 月 12 日 58:XNUMX tmp
[南希@华硕 /var/tmp]$ ls 2 > 时间
ls: 2: 没有这样的文件或目录
第一个命令 南希 执行是正确的(即使没有生成错误,因此标准错误重定向到的文件是空的)。 第二个命令期望 2 是一个文件名,本例中不存在,所以会报错。
所有这些功能都在 Bash Info 页面中进行了详细说明。