2016-11-15 20 views
0

我需要使用runCommand()方法從我的JAVA代碼運行遠程計算機上的腳本。現在我不能總是知道腳本的完整路徑,因爲特定的目錄名稱不斷變化。例如,路徑如下所示:/a/b/xxxxx/scriptxxxx是不斷更改的目錄名稱及其在/ a/b /下的唯一單個目錄。有沒有使用我可以得到目錄名稱的shell命令?我知道使用JAVA,但我特別需要shell命令。如何使用shell命令在不知道名稱的情況下導航到單個子目錄?

+1

find/a/b -type d -maxdepth 1應該爲您提供目錄b中目錄的名稱。如果你確定它只是一個,只需將輸出存儲在一個變量中,然後繼續進行處理。 –

+0

這應該做的工作:'dirname/a/b/*/script' – Cyrus

回答

2

如果只有一個單一的自我目錄,這樣做的另一種很簡單的方法是

cd */. 

*/.是,這擴展到「自我目錄」(命名)在任何子目錄,這當然是子目錄本身。請參考下面的例子來說明它的工作原理。

E.g.

$ pwd 
/home/dude/ 
$ mkdir -p a/b/ldsnds/c 
$ cd a/b/*/. 
$ pwd 
/home/dude/a/b/ldsnds 
$ cd - 
/home/dude/ 
$ cd a/b/*/./c 
$ pwd 
/home/dude/a/b/ldsnds/c 
+0

好!不知道這個訣竅:) –

0

下面應該給你目錄「b」中的目錄名稱。

$ find /a/b -type d -maxdepth 1 2> /dev/null 

如果你是如此的相信,這將永遠是/ A/B一個目錄,然後只儲存發現的可變輸出,並繼續向前邁進。

注意:2>/dev/null只是爲了擺脫錯誤警告。

相關問題