将选项语法字符串作为文件名传递

Bar*_*lom 1 linux bash command-line cat command-line-arguments

我不知何故在目录中得到了一个名为 --no-recursion 的文件。我怎样才能cat显示它包含的内容?不是这样,因为参数被解释为一个选项:

root@nagini [/home/lalilulelo]# cat --no-recursion 
cat: unrecognized option `--no-recursion'
Try `cat --help' for more information.
root@nagini [/home/lalilulelo]# cat \--no-recursion 
cat: unrecognized option `--no-recursion'
Try `cat --help' for more information.
root@nagini [/home/lalilulelo]# cat \\--no-recursion 
cat: \--no-recursion: No such file or directory
Run Code Online (Sandbox Code Playgroud)

hai*_*img 5

发生的事情是cat--no-recursion其视为其选项。您可以执行以下任一操作:

cat ./--no-recursion
Run Code Online (Sandbox Code Playgroud)

或者

cat -- --no-recursion
Run Code Online (Sandbox Code Playgroud)

可以做同样的事情rm来删除这个文件(因为它可能是某种错误)。

在我的第一个示例中,我将当前目录路径(“./”)添加到文件名中,因此它不以选项前缀开头,而在我的第二个示例中,我添加了一个特殊的 option --,这意味着“停止处理任何出现的内容在此之后作为一个选项”。