我不知道它是怎么到达的,我想知道它包含什么。但是我尝试过的每个命令,例如cat -
,cat \-
,vim -
,vim \-
等,都只是开始收听STDIN。
答案 0 :(得分:2)
如果文件名以连字符开头,则通常在./
前面加cat ./-
,在您的示例中为vim ./-
或-
。也就是名为./
的文件,位于当前目录\
。
在执行cat
或vim
之前,shell正在解析您正在使用的-
转义符。虽然-
文件名由这些程序给予特殊处理,而不是shell,并且将转义赋予shell不会改变程序的行为。
不仅在整个文件名是--
时,而且在它开始的时候你都需要这个,因为大多数程序都会认为它是一个开关。有些工具接受一个特殊的{{1}}参数,它将开关与文件名分开,但这不是通用的。
答案 1 :(得分:1)
You can also use something like vim `pwd`/-
`pwd`
扩展到您当前的目录,因此这基本上使用完整的文件路径来消除歧义 - 文件名来自 - 选项的指示
答案 2 :(得分:0)
对我有用的是cat <(-)
。这是shell的输入重定向功能。