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