目标目录名称中带有“ - =”的cd命令出错

时间:2014-11-26 21:31:16

标签: linux bash command-line-interface cd

当我尝试在某些目录中使用'cd'命令时,我遇到了一个有趣的现象。

我已经将一些目录命名为“ - = [name]”,这样当我在工作的Windows机器上按名称排序时,它们将被排序到顶部。在家里,我使用Linux机器。我使用USB记忆棒在两台机器之间传送文件。我发现我无法使用'cd'命令进入名为“ - = [name]”形式的目录。

选项卡自动完成会识别目录,并提供正确的表单。所以cd命令看起来像这样:

cd \-\=\ directory_name

但是,我一直收到以下错误消息:

bash: cd: -=: invalid option
cd: usage: cd [-L|[-P [-e]] [-@]] [dir].

有谁知道我这里发生了什么?

我知道我可以更改目录的名称。但是,我很好奇cd命令发生了什么。文件管理员可以毫无问题地打开目录。

2 个答案:

答案 0 :(得分:2)

在目录名前使用cd --或前缀./

cd -- file_path_to\\-\=\ directory_name

OR

cd ./file_path_to\\-\=\ directory_name

否则-被视为cd命令的选项。

答案 1 :(得分:0)

命令行参数以-开头。 cd期待看到-<option>-=不是有效选项。

您将看到几乎任何其他-X字符串。

$ cd -felkj
-bash: cd: -f: invalid option
cd: usage: cd [-L|-P] [dir]
$ cd -j
-bash: cd: -j: invalid option
cd: usage: cd [-L|-P] [dir]
$ cd -y
-bash: cd: -y: invalid option
cd: usage: cd [-L|-P] [dir]

您需要告诉cd您已使用--结束参数:

$ pwd
/tmp/f
$ ls
-foo/
$ cd -foo/
-bash: cd: -f: invalid option
cd: usage: cd [-L|-P] [dir]
$ cd -- -foo/
$ pwd
/tmp/f/-foo

或者在名称前加上任何有效的路径前缀(例如./-foo/tmp/f/-foo)。