,而不是做任何字符串操作或在子shell啓動的命令,你可以指任何目錄的父目錄..
本地或者,如果你能信任$PWD
變量,你可以使用$PWD/..
。
當然,這只是讓你使用父目錄,它不會給你父目錄的名稱。爲此,你已經有了幾個可用的替代品。再一次,請繼續閱讀。
在bash中cd
內建命令有兩個選項,-P
告訴cd
使用的物理目錄結構遍歷,因爲它解決符號鏈接的目錄結構,並-L
哪些手冊頁這樣說:
the -L option forces symbolic links
to be followed by resolving the link after processing instances
of .. in dir. If .. appears in dir, it is processed by removing
the immediately previous pathname component from dir, back to a
slash or the beginning of dir.
所以......雖然你可能是完美的罰款下列要求:
parentdir="$(cd ..; pwd)"
你可以用,因此得到的父目錄:
parentdir="$(cd -L ..; pwd)"
注意的是,雖然這確實涉及一個目錄的變化,這種變化實際上是一個子shell($(...)
)內,因此它不會影響你的腳本。
請注意,我說的「有效」,因爲嚴格來說,$(...)
,cd
和pwd
是內置所有打壞,所以你實際上並不產生新的炮彈。
你的意思是像'$ OLDPWD'? – redneb
你的意思是父目錄嗎? – vmonteco