1

我不知道它是如何到达那里的,我想知道它包含什么。但是我尝试过的每个命令,例如cat -, cat \-, vim -,vim \-等都只是开始在 STDIN 上侦听。

4

3 回答 3

2

如果文件名以连字符开头./,在您的示例中,通常会在其前面加上 give,cat ./-vim ./-. 即-当前目录中名为 的文件./

您正在使用的\转义符在执行之前由 shell 解析catvim. 而-文件名由那些程序而不是外壳程序给予特殊处理,并且给外壳程序提供转义不会改变程序的行为。

不仅当整个文件名是-时,而且当它以这种方式开始时,您都需要它,因为大多数程序会假定它是一个开关。一些工具接受--将开关与文件名分开的特殊参数,但这不是通用的。

于 2013-06-20T23:58:30.643 回答
1
You can also use something like vim `pwd`/- 

`pwd` 

扩展到您的当前目录,因此这基本上使用完整的文件路径来消除歧义 - 文件名来自 - 选项的指示

于 2013-06-20T21:43:36.233 回答
0

对我有用的是cat <(-)。这是 shell 的输入重定向功能。

于 2013-06-20T19:27:00.270 回答