'-'在bash中的确切用途是什么?我知道它们可以用于:
cd -
# 回到旧的“当前工作目录”some stream generating command | vim -
# 以某种方式将文本传递给vim。
我的问题是,-在bash中究竟是什么?在什么其他情况下可以使用它?
问候, Arun
这取决于应用程序。
cd -
返回到你上次所在的目录。
通常情况下,-
代表标准输入或标准输出。例如:
xmllint -
该命令未检查XML文件,而是检查stdin
上的XML。 示例:
xmllint - <<EOF
<root/>
EOF
同样的事情也适用于cat
:cat -
从标准输入 stdin
中读取。当 -
代表 stdout
时,是一个示例:
wget -O- http://google.com
将通过HTTP接收google.com并将其发送到stdout
。
顺便说一下:这与您的shell(例如bash
)无关,这只是被调用应用程序的语义。
-
没有任何意义(我不敢说它在shell中完全没有意义——例如,在扩展中使用,例如ls [0-9]*
会列出以数字开头的所有文件)。-
参数指示程序需要从STDIN而不是文件中读取输入。同样,这只是许多程序编码的方式,与bash技术上无关。这里没有通用规则。
根据上下文而变化。
当你需要在两个目录中重复执行某些操作时,它非常有用。请参考这里的#4:http://www.thegeekstuff.com/2008/10/6-awesome-linux-cd-command-hacks-productivity-tip3-for-geeks/
在许多地方,它表示标准输入。