Shell在
在 bashrc
中導出目錄而無需引用變數
目前在我的
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"/'
當然,您也可以重命名/更改下載文件夾的位置(或使用其路徑上沒有空格的符號連結)。