shell命令---dirname


用途說明

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代碼   收藏代碼
  1. #!/bin/sh  
  2.   
  3. # 跳轉到腳本所在目錄  
  4. cd $(dirname "$0") || exit 1  
  5.   
  6. # 剩下的部分  

 

這個寫法我經常用到,因為有時候腳本執行時無法確定是在哪個目錄,比如腳本用在crontab中時。

另一個寫法是:cd `dirname $0` 其中反引號··等同於$()。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM