我有这个功能,我经常使用它,而且效果很好。
这里是:
cdx () { cd `dirname $1` ; }
但是,这不适用于空格。当我像这样使用它时
cdx ~/desktop/folder/file\ file
它返回
usage: dirname path
但我要传递的是,本质上dirname path
。那么我应该怎么做才能解决这个问题呢? (当文件夹名称中有空格时,它也会执行相同的操作)
我的第一个想法是使用引号, cdX "directory\ whatever"
但它也不起作用。
答案1
如果您简单地编写$i
,空格会将您的变量内容转换为多个参数。如果你想保留空格,你必须引用一些东西。
对于您的示例,您可能想要:
cdx () { cd -- "$(dirname -- "$1")" ; }
并记住总是引用你的变量。