basename — 取得路徑的最後一個元件(檔名)

從路徑字串中取出檔名部分,可去除副檔名。

語法

basename 路徑 [後綴]

常用選項

選項 說明 範例
-s 後綴 / -a 從多個路徑分別取出 basename(-a 多個引數) basename -a /path/a /path/b
後綴(第二個引數) 取出 basename 後再去除指定後綴 basename /path/file.txt .txt

使用範例

範例 1:取得路徑的檔名

從絕對路徑中取出最後的檔名部分。

$ basename /etc/nginx/nginx.conf
nginx.conf
範例 2:去除副檔名

取出檔名的同時去除副檔名,常用於腳本中產生不含副檔名的輸出路徑。

$ basename /home/user/report.pdf .pdf
report
範例 3:在腳本中取得腳本自身的名稱

腳本中常用 basename $0 取得腳本名稱(不含路徑),用於錯誤訊息。

$ echo "用法:$(basename $0) [選項] 引數"
用法:deploy.sh [選項] 引數
範例 4:批次取得多個路徑的檔名

使用 -a 一次處理多個路徑引數。

$ basename -a /usr/bin/ls /usr/bin/cat /usr/bin/grep
ls
cat
grep

延伸閱讀