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