unix 的哲学是:没有消息便是好消息。Linux自然也是这样做的。
所以你会发现自己在Linux下执行命令行命令的时候,很少会有信息打印在终端上。(这里的打印就是输出的意思)
哈姆雷特说:生存或毁灭,这是一个值得考虑的问题。
unix说:显示或者不显示,这是一个值得考虑的问题。
虽然unix的命令默认是不输出消息出来的,但是如果你想要看到消息显示的话,大部分命令也是可以的。
很多命令里面都提供了 -v 这个选项,当制定了这个选项后,程序执行时会输出的相应状态。
很多命令:tar,cp,mv,rm,chmod,mkdir…… 等等,几乎都有这个选项。“-v ” 这个选项几乎已经成为Linux 中想要打印状态消息选项的标准了。
而 v:是verbose的打头字母,这个单词的意思是”啰嗦的”,哈哈,看到这个单词的意思,就可以看出设计unix的那帮人对于这种消息的态度了……啰嗦的!
因为以前用unix工作的人,都是些数学家,计算机科学家等专业人士,它们更在意工作做得怎么样了,科学计算是否成功了等等,比较专一,对于屏幕上的信息比较反感,所以后来这种态度就被带到unix哲学中了。
也就成就了unix 下 verbose 这个单词!
而linux 的很多标准都兼容unix,所以嘛……
后记:
-v选项只有在针对默认不输出的命令时,才会让对方啰嗦起来,而如果一个命令本身就是要打印信息,要像屏幕输出东西的话,那么-v就会用来做别的选项了。
比如make 的 -v是 version的意思,grep 的 -v 是 inverse 的意思。
总之无非就是那么几个单词:verbose,version,inverse!
这里提一个正则表达式删除空行的技巧,使用 grep -v 选项
首先grep '^$' file 是选择file中的空行,然后加上-v 选项:grep -v '^$'则是选择grep中的非空行,grep选择后会在标准输出打印出来,这时候只需要将打印出来的非空行重定向到某个文件,就是删除了空行了。
grep -v '^$' >> noEmptyLine