目前在我的bashrc
I 中导出一个变量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"/'
当然,您也可以重命名/更改下载文件夹的位置(或使用路径上不带空格的符号链接)。