对话 UNIX,第 7 部分: 命令行惯用语( 四 )


下面是一个简单的示例:
$ ls
secret.txt
$ cat secret.txt
I am the Walrus.
$ cat secret.txt > /dev/null
$ cat socrates.txt > /dev/null
cat: socrates.txt: No such file or Directory
$ cat socrates.txt >& /dev/null
$ echo Done.
Done.
如果将 cat 的标准输出重定向到 /dev/null,那么将不会显示任何内容,因为已将所有的位发送到了虚拟的“永久竖向文件 。然而,如果出现了错误,将显示发送到标准错误的错误消息 。如果您希望忽略所有的输出,可以使用 >& 操作符以便将 stdout 和 stderr 丢弃 。
您还可以将 /dev/null 作为一个长度为零的文件,以清空现有的文件或者创建新的空白文件:
$ cat secret.txt
Anakin Skywalker is Darth Vader.
$ cp /dev/null secret.txt
$ cat secret.txt
$ echo "The moon is made of cheese!" > secret.txt
$ cat secret.txt
The moon is made of cheese!
$ cat /dev/null > secret.txt
$ cat secret.txt
$ cp /dev/null newsecret.txt
$ cat newsecret.txt
$ echo Done.
Done.
顺便提一下,如果您在 Macintosh 中使用 UNIX,那么可以在一个终端窗口中尝试 open 命令 。例如,如果当前工作目录中有一个名为 poodle.jpg 的文件,命令 open poodle.jpg 将启动 Preview 并打开 poodle.jpg,Preview 是 Mac OS X 中内置的图像查看器 。Mac OS X open 是命令行和 Macintosh 的窗口环境之间的纽带,并且它比借助于 Finder 要快得多 。
下面来总结一下!
噢!尽管这是一辆高速行驶的列车,但现在您已经做好了准备,可以更深入地探索 UNIX 。您甚至了解了在不需要某些内容时,应该将其丢弃 。
和以前一样,还有更多的内容需要介绍 。在以后的几个月中,对话 UNIX 系列将深入研究作业控制、正则表达式(一种奇怪的方言,但并不难掌握)、如何编译从 Internet 上下载的新的实用工具,等等 。
【对话 UNIX,第 7 部分: 命令行惯用语】不要忘了抹点防晒油哟!

推荐阅读