导出 `bashrc` 中的目录,无需引用变量

导出 `bashrc` 中的目录,无需引用变量

目前在我的bashrcI 中导出一个变量export dl="path/to/Downloads"。该路径中包含一个空格,因此每当我mv从目录中获取内容时,我都必须引用dl变量,例如mv "$dl"/*.py somewhere/else.有什么方法可以定义变量dl,而不必在命令行中引用它,即以我可以做的方式mv $dl/*.py somewhere/else

我在这里看到了类似的问题,但无法找到这个特定问题的解决方案,所以如果这是重复的帖子,请原谅我。

答案1

不,你不能。您可以使用另一种 shell 语言,创建到该目录的不带空格的符号链接,或者使用一些别名技巧。

我个人不会做后者,因为我很快就会忘记它;-)

但无论如何,这里有一个例子:

# usage: q cmd ...
# just like cmd ..., only without IFS splitting
alias q='_q=$(fc -nl -0); IFS= eval "${_q#*q}" #'

$ src='foo bar' dst='baz quux'
$ q mkdir -p $src/dir $dst
$ q mv $src/dir $dst
$ q ls $dst
dir

答案2

完全不是您的问题,但如果您的问题明确是从下载文件夹中移动文件的常见操作,您可以使用特定的别名:

alias dl-mv='mv "$dl"/'

当然,您也可以重命名/更改下载文件夹的位置(或使用路径上不带空格的符号链接)。

相关内容