dirname命令和basename命令

2022-05-07 07:33:15 字數 2151 閱讀 3598

從給定的包含絕對路徑的檔名中去除檔名(非目錄的部分),然後返回剩下的路徑(目錄的部分)

dirnamestring

(1)# dirname /etc/sysconfig/network-scripts/ifcfg-eth0

/etc/sysconfig/network-scripts

(2)# dirname /boot/grub/grub.conf

/boot/grub

(3)# dirname /etc/inittab

/etc

(4)# echo `pwd` && dirname

modprobe

.conf

/etc.(

5)#echo `pwd` && dirname sysconfig/network-scripts/

/etc

sysconfig

返回乙個字串引數的基本檔名稱。

basenamestring[ suffix ]

basename命令讀取 string 引數,刪除以 /(斜槓) 結尾的字首以及任何指定的 suffix 引數,並將剩餘的基本檔名稱寫至標準輸出。

basename 命令應用以下建立基本檔名稱的規則:

如果 string引數是 //(雙斜槓) 或如果 string 引數包含的都是斜槓字元,則將字串更改為單個 /(斜槓)。跳過步驟2 到4。

從指定字串除去任何拖尾的/ 字元。

如果在 string引數中剩餘任何 / 字元,則除去字串的字首直到(包含)最後乙個 / 字元。

suffix引數

(1)沒有

suffix引數

如果指定 suffix引數,且它和字串中的剩餘的字元相同,則不修改此字串。例如,輸入:

[centos@s202 /]$ basename /home/centos/for99.sh for99.sh

for99.

sh

如果指定 suffix引數,且它和字串中所有字元都不相同,但和字串的字尾相同,則除去指定字尾。例如,輸入:

[centos@s202 /]$ basename /home/centos/for99.sh

shfor99.

[centos@s202 /]$ basename /home/centos/for99.sh .sh

for99

不能在字串中查詢到指定的字尾不作為錯誤處理。

[centos@s202 /]$ basename /home/centos/for99.sh for99.sh

for99.

sh[centos@s202 /]$ basename /home/centos/for99.sh for91.sh

for99.

sh[centos@s202 /]$ basename /home/centos/for99.sh for91.ssh

for99.

sh

basename和 dirname命令通常用於shell 指令碼中的命令替換來指定和指定的輸入檔名稱有所差異的輸出檔名稱。

該命令返回以下退出值:

0成功完成

〉0  發生錯誤

示例

要顯示乙個shell 變數的基本名稱,請輸入:

basename $workfile

此命令顯示指定給shell 變數 

workfile

的值的基本名稱。如果 

workfile

變數的值是 /home/jim/program.c 檔案,則此命令顯示 

program.c

。要構造乙個和另乙個檔名稱相同(除了字尾)的檔名稱,請輸入:

ofile=`basename $1 .c`.o

此命令指定給 

ofile

檔案第乙個位置上的引數(

$1)的值,但它的 

.c字尾更改至 

.o。如果 

$1是 /home/jim/program.c檔案,則 

ofile

成為 program.o

。因為 

program.o

僅是乙個基本檔名稱,它標識在當前目錄中的檔案。

Linux基礎 dirname命令總結

blog 個人本文只總結一些常用的用法,更詳細的說明見man dirname和direname help。目錄dirname命令用於獲取給定路徑的路徑部分。dirname option name.shell指令碼常用語返回指令碼檔案所在路徑。cd dirname 0 獲取網絡卡配置檔案所在路徑 ro...

012 檔案和目錄操作命令 dirname

dirname 顯示檔名 linux下一切皆檔案 的路徑 範例1 顯示 etc services中的 etc root db01 ll etc services 檢視 etc services檔案是否存在 rw r r 1 root root 641020 oct 2 2013 etc servic...

dirname和basename的用法

dirname 取乙個檔案的目錄,example a user guicl shell bash test.sh echo dirname a 結果 user guicl shell bash basename 取乙個檔案的檔案部分,可以是去掉目錄,也可以是去掉字尾 a user guicl she...