use*_*851 190 linux command-line-interface
我有一个名为的目录:
-2
Run Code Online (Sandbox Code Playgroud)
我想 cd 进入它,但 cd 抱怨:
bash: cd: -2: invalid option
Run Code Online (Sandbox Code Playgroud)
没有成功,我试过:
cd "-2"
cd '-2'
cd \-2
Run Code Online (Sandbox Code Playgroud)
有什么解决办法吗?
编辑:服务器上没有可用的文件浏览器,如 mc 等。
Mic*_*ton 301
至少有两种方式:
使用--参数。
cd -- -2
Run Code Online (Sandbox Code Playgroud)
这使用了 GNU 工具通用的约定,即不将后面出现的任何内容--视为命令行选项。
正如评论者所指出的,该约定也在POSIX 标准中定义:
默认行为:当此部分列为“无”时,表示该实现不需要支持任何选项。不接受选项但接受操作数的标准实用程序应识别
"--"为要丢弃的第一个参数。识别的要求
"--"是因为符合要求的应用程序需要一种方法来保护它们的操作数不受实现可能作为扩展提供的任何任意选项的影响。例如,如果标准实用程序 foo 被列为不带任何选项,并且应用程序需要给它一个带前导连字符的路径名,它可以安全地这样做:Run Code Online (Sandbox Code Playgroud)foo -- -myfile并避免将-m用作扩展名的任何问题。
以及:
准则 10:应接受
参数--作为指示选项结束的分隔符。任何后续参数都应视为操作数,即使它们以'-'字符开头。该--参数不应该被用来作为一个选项或操作数。
明确指定路径:
cd ./-2
Run Code Online (Sandbox Code Playgroud)
这指定了显式命名当前目录 ( .) 作为起点的路径。
cd $(pwd)/-2
cd /absolute/path/to/-2
Run Code Online (Sandbox Code Playgroud)
这些是上述内容的变体。任何数量的这种变化都是可能的;我将把它作为练习留给读者去发现所有这些。
| 归档时间: |
|
| 查看次数: |
51840 次 |
| 最近记录: |