2015-09-19 52 views
-1

我要自動執行下列事情:如何獲取目錄的絕對路徑?

cd到當前目錄

cd workdir 

作出新的目錄

mkdir mydata 

,並獲得絕對路徑此MYDATA目錄

+1

使用'「$ PWD/mydata」' – jordanm

+0

可以是'或$(pwd)/ mydata'。 –

+0

請注意,'PWD'不一定會擴展到絕對路徑(如果您在符號鏈接目錄中)。注意'$(pwd)'會修剪尾隨的換行符,如果你在一個名字包含尾隨換行符的目錄中(這是一個有趣的笑話)。 –

回答

1

有是一個Unix實用程序,可以實現:

readlink --canonicalize nameofyourfileorfolder 
0

假設cd workdir; MKDIR MYDATA不會失敗:

dir=$(cd workdir; mkdir mydata; pwd) 

稍微更穩健:

dir=$(mkdir -p workdir/mydata; pwd) 

對於一個更可靠的方法,你可以檢查所創建的目錄後運行以下命令存在:

dir=$(cd workdir/mydata; pwd) 

如果通過「絕對路徑」表示物理路徑,則考慮使用pwd -P而不是僅僅是pwd

+0

不完全_robust_:如果目錄名稱包含尾隨換行符,並且不一定表示絕對路徑(如果您在符號鏈接目錄中),則失敗。後者可以通過使用'cd -P'來修復。前者可以通過適當的'read'來修復。 –

相關問題