您好,登錄后才能下訂單哦!
這篇文章給大家分享的是linux dirname命令的用法。小編覺得挺實用的,因此分享給大家學習。如下資料是關于linux dirname命令的使用示例。
NAME
dirname - strip last component from file name
示例一 來自手冊頁的例子
$ dirname /usr/bin/sort
/usr/bin
$ dirname stdio.h
.
示例二
$ dirname /usr/bin
/usr
$ dirname /usr/bin/
/usr
腳本中獲取 腳本文件所在的絕對路徑
shellPath=$(cd "$(dirname "$0")"; pwd)
echo $shellPaht
用途說明
dirname命令可以取給定路徑的目錄部分(strip non-directory suffix from file name)。這個命令很少直接在shell命令行中使用,我一般把它用在shell腳本中,用于取得腳本文件所在目錄,然后將當前目錄切換過去。根據手冊頁上說的“Print NAME with its trailing /component removed; if NAME contains no /’s, output ‘.’ (meaning the current directory).”,似乎說“取給定路徑的目錄部分” 并不能很準確的概括dirname命令的用途。Linux下還有一個命令是basename,它與dirname相反,是取得文件名稱部分。
常用參數
無。
使用示例
示例一 來自手冊頁的例子
[root@qzt196 ~]# dirname /usr/bin/sort /usr/bin [root@qzt196 ~]# dirname stdio.h . [root@qzt196 ~]#
示例二
[root@qzt196 ~]# dirname /usr/bin /usr [root@qzt196 ~]# dirname /usr/bin/ /usr
注意:此處的輸出結果,似乎有點怪。這應該看下dirname命令的源代碼才能解釋了。
示例三 在bash腳本中的運用
Bash代碼 收藏代碼
#!/bin/sh
cd $(dirname "$0") || exit 1
這個寫法我經常用到,因為有時候腳本執行時無法確定是在哪個目錄,比如腳本用在crontab中時。
另一個寫法是:cd dirname $0
其中反引號··等同于$()。
示例四 與另外一種截取目錄的方法的比較
可以用${pathname%/*}截取掉pathname后面的文件部分。
[root@jfht ~]# pathname=/usr/bin/sort; echo $(dirname $pathname) ${pathname%/} /usr/bin /usr/bin [root@jfht ~]# pathname=/usr/bin/; echo $(dirname $pathname) ${pathname%/} /usr /usr/bin [root@jfht ~]# pathname=/usr/bin; echo $(dirname $pathname) ${pathname%/} /usr /usr [root@jfht ~]# pathname=/usr/; echo $(dirname $pathname) ${pathname%/} / /usr [root@jfht ~]# pathname=/usr; echo $(dirname $pathname) ${pathname%/} / [root@jfht ~]# pathname=/; echo $(dirname $pathname) ${pathname%/} / [root@jfht ~]# pathname=stdio.h; echo $(dirname $pathname) ${pathname%/*} . stdio.h [root@jfht ~]#
關于dirname命令的用法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。