Bash

如何在 WSL/Ubuntu/Bash 中使用兩個波浪號字元“~~”(或類似字元)創建路徑的快捷方式?

  • July 13, 2021

我是 Ubuntu/Linux 世界的新手,所以不要對我太苛刻。

我在帶有 WSL2 和 bash shell 的 Windows 上使用 Ubuntu。有時我想將文件從 Windows 複製到 Ubuntu 或其他方式。我在網上找到了一些關於如何做到這一點的教程,最簡單的方法是導航到/mnt/c/Users/<your_user>.

我想創建一個像波浪號~這樣的變數,這意味著我的 Windows 使用者的主目錄。我考慮過使用雙波浪號~~,因為我看到它不是保留的或什麼的。

/bin我在命名中創建了一個執行檔,~~echo是必要的路徑。但這使用起來很麻煩。

有沒有辦法創建一個特殊的字元~?如果沒有,有沒有更好的方法來做到這一點?

我想要的最終結果是能夠執行以下操作:

cp ~~/Desktop/somefile.txt ~/somefile.txt

我在 WSL 下的解決方案是在我的主目錄中創建指向我的 Windows 配置文件的符號連結。我個人使用:

ln -s /mnt/c/Users/<username> ~/winhome

但是你可以縮短它。在 下bash,至少~~ 似乎也可以用作符號連結名稱,但我擔心在某些情況下它可能會被誤解。如果您想嘗試該路線:

ln -s /mnt/c/Users/<username> ~/~~

然後訪問它變成這樣:

cp ~/myfile ~/~~/Documents/

在您的情況下,您可能可以改用 shell 變數。你可以稱它為$WHeg 它仍然相當短:

~$ export WH=/mnt/c/Users/your_user

這會將變數設置WH為您的 Windows 主目錄並將其導出為環境變數。然後,您可以使用此變數,如

~$ cp $WH/Desktop/somefile.txt ~/somefile.txt

要使此設置永久化,您可以將此變數規範添加到您的.bashrc文件中。

請注意,如果 Windows 主目錄的路徑包含空格,則必須在變數定義中引用路徑並在以後使用:

export WH="/mnt/c/Users/your user"

在你.bashrc

~$ cp "$WH"/Desktop/somefile.txt ~/somefile.txt

在控制台上使用時。

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