2. 输入重定向 输入重定向是指把命令(或可执行程序)的标准输入重定向到指定的文件中。也就是说,输入可以不来自键盘,而来自一个指定的文件。所以说,输入重定向主要用于改变一个命令的输入源,特别是改变那些需要大量输入的输入源。 例如,命令wc统计指定文件包含的行数、单词数和字符数。如果仅在命令行上键入: $ wc wc将等待用户告诉它统计什么,这时shell就好象死了一样,从键盘键入的所有文本都出现在屏幕上,但并没有什么结果,直至按下<ctrl+d>,wc才将命令结果写在屏幕上。 如果给出一个文件名作为wc命令的参数,如下例所示,wc将返回该文件所包含的行数、单词数和字符数。 $ wc /etc/passwd 20 23 726 /etc/passwd $ 另一种把/etc/passwd文件内容传给wc命令的方法是重定向wc的输入。输入重定向的一般形式为:命令this text forms the content >of the here document,which >continues until the end of >text delimter >delim 4 17 98 在文件名。例如: $ ls > directory.out $ cat directory.out ch1.doc ch2.doc ch3.doc chimp config mail/ test/ $ 将ls命令的输出保存为一个名为directory.out的文件。 注:如果>符号后边的文件已存在,那么这个文件将被重写。 为避免输出重定向中指定文件只能存放当前命令的输出重定向的内容,shell提供了输出重定向的一种追加手段。输出追加重定向与输出重定向的功能非常相似,区别仅在于输出追加重定向的功能是把命令(或可执行程序)的输出结果追加到指定文件的最后,而该文件原有内容不被破坏。 如果要将一条命令的输出结果追加到指定文件的后面,可以使用追加重定向操作符>>。形式为:命令>>文件名。例如: $ ls *.doc>>directory.out $ cat directory.out ch1.doc ch2.doc ch3.doc chimp config mail/ test/ ch1.doc ch2.doc ch3.doc $ 和程序的标准输出重定向一样,程序的错误输出也可以重新定向。使用符号2>(或追加符号2>>)表示对错误输出设备重定向。例如下面的命令: $ ls /usr/tmp 2> err.file 可在屏幕上看到程序的正常输出结果,但又将程序的任何错误信息送到文件err.file中,以备将来检查用。 还可以使用另一个输出重定向操作符(&>)将标准输出和错误输出同时送到同一文件中。例如: $ ls /usr/tmp &> output.file 利用重定向将命令组合在一起,可实现系统单个命令不能提供的新功能。例如使用下面的命令序列: $ ls /usr/bin > /tmp/dir $ wc –w
|