如何在 Bash 中獲取檔案路徑引數中的最後一個 dirname/filename?


我們使用 bash 檔案來儲存不同的變數,我們通常稱之為環境變數。稍後,我們可以透過 Linux 提供的 echo 實用程式命令輕鬆列印它們來訪問這些變數。

示例

列印 $PATH 環境變數。

命令

echo $PATH

輸出

immukul@192 src % echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/go/bin:/Library/Apple/usr/bin:/Us
ers/immukul/.cargo/bin

現在我們可以看到 PATH 環境變數由不同的目錄組成,假設我們想要路徑變數中的最後一個檔名。

在這種情況下,我們將使用 Linux 提供的 basename 命令實用程式。

**basename** 命令用於移除目錄路徑並返回變數中存在的最後一個檔名。

命令

basename $PATH

輸出

bin

我們還可以使用一個簡單的技巧來獲取倒數第二個值,方法是將 basename 命令修改為類似這樣的內容:

sh-3.2# echo $(basename $(dirname $PATH))

上述命令將有助於獲取 PATH 變數的倒數第二個名稱,這是一個目錄。

輸出

.cargo

同樣,我們也可以列印倒數第三個名稱。

命令

sh-3.2# echo $(basename $(dirname $(dirname $PATH)))

輸出

immukul

更新於:2021年7月30日

1K+ 瀏覽量

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.