我不知道它是如何到达那里的,我想知道它包含什么。但是我尝试过的每个命令,例如cat -
, cat \-
, vim -
,vim \-
等都只是开始在 STDIN 上侦听。
问问题
100 次
3 回答
2
如果文件名以连字符开头./
,在您的示例中,通常会在其前面加上 give,cat ./-
或vim ./-
. 即-
当前目录中名为 的文件./
。
您正在使用的\
转义符在执行之前由 shell 解析cat
或vim
. 而-
文件名由那些程序而不是外壳程序给予特殊处理,并且给外壳程序提供转义不会改变程序的行为。
不仅当整个文件名是-
时,而且当它以这种方式开始时,您都需要它,因为大多数程序会假定它是一个开关。一些工具接受--
将开关与文件名分开的特殊参数,但这不是通用的。
于 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 回答