Shell

bashrc 中導出目錄而無需引用變數

  • November 6, 2020

目前在我的bashrc我導出一個變數export dl="path/to/Downloads"。路徑中包含一個空格,因此每當我mv從目錄中獲取某些內容時,我都必須引用dl變數,例如mv "$dl"/*.py somewhere/else. 有什麼方法可以dl以一種我不必在命令行中引用它的方式定義變數,即以一種我可以做的方式mv $dl/*.py somewhere/else

我在這裡看到過類似的問題,但無法找到解決這個特定問題的方法,所以如果它是重複的文章,請原諒我。

不,你不能。您可以使用另一種 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

不完全是您的問題,但如果您的問題明確是從“下載”文件夾中移動文件的常見操作,您可以為此使用特定別名:

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

當然,您也可以重命名/更改下載文件夾的位置(或使用其路徑上沒有空格的符號連結)。

引用自:https://unix.stackexchange.com/questions/618262