2016-11-15 62 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只是为了摆脱错误警告。

相关问题