basename是乙個命令列中實用的小工具,可從給定的檔名中刪除目錄和字尾。
系統環境
centos7
如何使用basename命令
在centos7系統中,已經預設安裝了basename
命令了,該命令包含在coreutils
安裝包裡。
basename
有兩種語法:
basename name [suffix]
basename option... name...
basename最後一部分。也可以刪除任何結尾的字尾。這是乙個簡單的命令,最基本的是去掉檔案明前面的目錄並列印出來:
[root@localhost ~]# basename /etc/yum.repos.d/centos-base.repo
centos-base.repo
basename命令預設刪除所有結尾的/
字元:
[root@localhost ~]# basename /usr/local/
local
[root@localhost ~]# basename /usr/local
local
預設情況下,每條輸出行以換行符(\n)結尾。要以nul結尾,請使用-z(--zero)選項。
basename接受多個檔案basename命令可以接受多個名稱作為引數。可以使用-a(--multiple)選項,然後使用空格分隔檔案列表。例如,要獲取/etc/passwd和/etc/shadow的檔名,可以執行:
[root@localhost ~]# basename -a /etc/passwd /etc/shadow
passwd
shadow
刪除指定結尾的字尾要從檔名中刪除任何結尾的字尾,請將字尾作為第二個引數傳遞:
[root@localhost ~]# basename /etc/hostname name
host
另一種方法:
[root@localhost ~]# basename -s name /etc/hostname
host
上面例子中,指定name為字尾,可以看到輸出結果中只顯示/
後面和name
前面的內容了。
通常,此功能用於刪除檔案的副檔名:
或者[root@localhost ~]# basename /etc/httpd/conf/httpd.conf .conf
下面例子,使用-a選項指定多個檔案,-s選項指定字尾內容:
刪除末尾字尾的另一種方法是使用-s(--suffix = suffix)選項指定字尾。上面例項中以展現。
使用例項
以下示例顯示了如何在bash指令碼中使用for迴圈、mv命令和basename命令,通過將當前目錄下面的檔案,副檔名從「 .jpg」替換為「 .jpeg」:
總結
basename是乙個命令列實用程式,可從給定的檔名中刪除目錄和字尾。linux就該這麼學
Linux命令之basename 命令
返回乙個字串引數的基本檔名稱。basename string suffix basename 命令讀取 string 引數,刪除以 斜槓 結尾的字首以及任何指定的 suffix 引數,並將剩餘的基本檔名稱寫至標準輸出。basename 命令應用以下建立基本檔名稱的規則 如果 string 引數是 雙...
shell 中 basename 的簡單使用
在shell 指令碼中 0 通常用於顯示指令碼的名稱,在不使用basename 的時候會顯示指令碼的路徑名稱例如1 2 3 4 5 cattest5.sh bin bash testing the 0 parameter echothe zero parameter issetto 0 執行指令碼 ...
dirname和basename的用法
dirname 取乙個檔案的目錄,example a user guicl shell bash test.sh echo dirname a 結果 user guicl shell bash basename 取乙個檔案的檔案部分,可以是去掉目錄,也可以是去掉字尾 a user guicl she...