Linux中的basename命令使用例項

2021-10-13 10:16:30 字數 2634 閱讀 3711

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...