在 Linux 檔案系統中導航的技巧

2020-05-22 11:41:00

cd 命令可能是任何 Linux 使用者學習的前 10 個命令之一,但這並不是在 Linux 檔案系統中導航的唯一方法,這裡還有其他一些方法。

無論你是在檔案系統中四處檢視、尋找檔案還是嘗試進入重要目錄,Linux 都可以提供很多幫助。在本文中,我們將介紹一些技巧,使你可以在檔案系統中移動,查詢和使用所需的命令也更加輕鬆。

新增到 $PATH

確保你不必花費大量時間在 Linux 系統上查詢命令的最簡單、最有用的方法之一就是在 $PATH 變數中新增適當的目錄。但是,新增到 $PATH 變數中的目錄順序非常重要。它們確定系統在目錄中查詢要執行命令的目錄順序–在找到第一個匹配項時停止。

例如,你可能希望將家目錄放在第一個,這樣,如果你建立的指令碼與其他可執行檔案有相同的名稱,那麼只要輸入該指令碼的名稱,它便會執行。

要將家目錄新增到 $PATH 變數中,可以執行以下操作:

$ export PATH=~:$PATH

~ 字元代表家目錄。

如果將指令碼儲存在 bin 目錄中,下面的會有效:

$ export PATH=~/bin:$PATH

然後,你可以執行位於家目錄中的指令碼,如下所示:

$ myscriptGood morning, you just ran /home/myacct/bin/myscript

重要提示:上面顯示的命令會新增到你的搜尋路徑中,因為 $PATH(當前路徑)被包含在內。它們不會覆蓋它。你的搜尋路徑應該在你的 .bashrc 檔案中設定,任何你打算永久化的更改也應該新增到那裡。

使用符號連結

符號連結提供了一種簡單而明顯的方式來記錄可能經常需要使用的目錄的位置。例如,如果你管理網站的內容,那麼可能需要通過建立如下連結來使你的帳戶“記住”網頁檔案的位置:

ln -s /var/www/html www

引數的順序很重要。第一個(/var/www/html)是目標,第二個是你建立的連結的名稱。如果你當前不在家目錄中,那麼以下命令將執行相同的操作:

ln -s /var/www/html ~/www

設定好之後,你可以使用 cd www 進入 /var/www/html

使用 shopt

shopt 命令還提供了一種讓移動到其他目錄更加容易的方法。當你使用 shoptautocd 選項時,只需輸入名稱即可轉到目錄。例如:

$ shopt -s autocd$ wwwcd -- www/home/myacct/www$ pwd -P/var/www/html$ ~/bincd -- /home/myacct/bin$ pwd/home/myacct/bin

在上面的第一組命令中,啟用了 shopt 命令的 autocd 選項。輸入 www,就會呼叫 cd www 命令。由於此符號連結是在上面的 ln 命令範例之一中建立的,因此將我們移至 /var/www/htmlpwd -P 命令顯示實際位置。

在第二組中,鍵入 ~/bin 會呼叫 cd 進入在使用者家目錄的 bin 目錄。

請注意,當你輸入的是命令時,autocd 行為將不會生效,即使它也是目錄的名稱。

shopt 是 bash 內建命令,它有很多選項。這只是意味著你不必在要進入每個目錄的名稱之前輸入 cd

要檢視 shopt 的其他選項,只需輸入 shopt

使用 $CDPATH

可能進入特定目錄的最有用技巧之一,就是將你希望能夠輕鬆進入的路徑新增到 $CDPATH 中。這將建立一個目錄列表,只需輸入完整路徑名的一部分即可進入。

一方面,這可能有點棘手。你的 $CDPATH 需要包含要移動到的目錄的父目錄,而不是目錄本身。

例如,假設你希望僅通過輸入 cd html 就可以移至 /var/www/html 目錄,並僅使用 cd 和簡單目錄名即可移至 /var/log 中的子目錄。在這種情況下,此 $CDPATH 就可以起作用:

$ CDPATH=.:/var/log:/var/www

你將看到:

$ cd journal/var/log/journal$ cd html/var/www/html

當你輸入的不是完整路徑時,$CDPATH 就會生效。它向下檢視其目錄列表,以檢視指定的目錄是否存在於其中一個目錄中。找到匹配項後,它將帶你到那裡。

$CDPATH 開頭保持 . 意味著你可以進入本地目錄,而不必在 $CDPATH 中定義它們。

$ export CDPATH=".:$CDPATH"$ Videoscd -- Videos/home/myacct/Videos

在 Linux 檔案系統鍵切換並不難,但是如果你使用一些方便的技巧輕鬆地到達各個位置,那你可以節省一些大腦細胞。