如果目录名称为“my dir”。我可以使用以下命令访问该目录:
~: cd my\ dir
或者
~: cd "dy dir"
但我发现如果我这样做:
~: export my_dir=my\ dir
或者
~: export my_dir="my dir"
然后
~: cd $my_dir
它不起作用,cd 总是将其参数获取为“my”并报告错误。
有人知道如何解决这个问题吗?
谢谢!
答案1
当在引号外使用变量时,shell 会根据空格拆分变量。请cd "$my_dir"
改为这样做。
答案2
正在做
cd "$my_dir"
可以,但是您必须始终记住,对于 my_dir,您需要使用“my_dir”。另一种解决方案是您可以执行以下操作:
ln -s my\ dir my_dir
export my_dir="my_dir"
现在你应该能够做到:
cd $my_dir
因此基本上创建一个指向带有空格的目录的符号链接,然后导出符号链接而不是实际目录。
答案3
alias cdmydir="cd my\ dir"
您将无法将其用于任何其他功能,例如指定路径,但它可以用于此立即用途。
我尝试了export my_dir=my\\\ dir
和export my_dir="\"my dir\""
,这样环境变量分别为my\ dir
和"my dir"
。但是 bash 必须对环境变量进行与常规命令行不同的解析:我得到了my\
和的错误“没有这样的文件或目录”错误"my
。
答案4
c(){cd“$1$2$3$4”;}
在您认为应该使用的任何 bash 文件中。 Tab 键添加 / 以转义空格,从 GUI 中拖动它也是如此。