shell 中獲取檔案真實路徑(絕對路徑)

2021-07-02 18:26:04 字數 840 閱讀 6364

shell 指令碼中,通常會使用相對路徑來做處理,但有時候,我們也許需要用到絕對路徑。

在shell怎麼獲取乙個檔案或目錄的絕對路徑呢?

也許你會立馬想到realpath(如果你寫過php的話),那麼shell支援這個命令嗎?看一下這裡你就知道了。

這個命令並不是總是可用的。 其實我們可以使用readlink命令:readlink -f  file_path

file_real_path=$(readlink -f .)    獲取當前的真實路徑

file_real_path=$(readlink -f ../..)    獲取上上一級的真實路徑

這樣就可以獲得檔案的絕對路徑了,readlink的具體用法請自行man readlink!

readlink對於softlink的處理拿到的是實際的檔案路徑,而不是softlink路徑。

更好用的獲取當前執行指令碼的路徑的方法為:

curdir=$(cd $(dirname $); pwd )

echo $curdir 

其他的常用路徑有:

獲取當前執行指令碼的路徑 

filepath=$(cd "$(dirname "$0")"; pwd) 

echo "$(basename $0) $(dirname $0) -- $filepath " 

指令碼檔案的絕對路徑存在了環境變數filepath中,可以用echo $filepath  

$0: 獲取當前指令碼的名稱 

$#: 傳遞給指令碼的引數個數 

$$: shell指令碼的程序號

Android Uri獲取真實路徑以及檔名的方法

在android 程式設計中經常會用到uri轉化為檔案路徑 下面是4.4後通過uri獲取路徑以及檔名一種方法 public static string getrealfilepath final context context,final uri uri else if contentresolve...

shell獲取指令碼路徑

以下四種 pwd 獲取當前執行 主函式 指令碼的路徑 dirname 0 相對路徑 cd dirname 0 pwd 當前執行指令碼的絕對路徑 cd dirname pwd 指令碼絕對路徑 這段 所在指令碼的絕對路徑 對於第三種情況,它存在的意義在於,當該指令碼被呼叫時,顯示的路徑是這段 所在指令碼...

Android 拍照後獲取真實路徑

原文 普通的獲取方式 得到的將是縮圖,而且因手機的不同,縮圖的大小也不一樣 intent intent new intent mediastore.action image capture startactivityforresult intent,result ok override protec...