我需要使用runCommand()方法从我的JAVA代码在远程机器中运行脚本。现在,我不能总是知道脚本的完整路径,因为特定的目录名称不断变化。例如,路径如下所示: / a / b / xxxxx / script 。 xxxx 是不断更改的目录名称,是/ a / b /下唯一的单个目录。是否有任何shell命令用于获取目录名称?我知道使用JAVA,但我特别需要shell命令。
答案 0 :(得分: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
答案 1 :(得分:0)
下面应该为您提供目录“b”中的目录名称。
$ find /a/b -type d -maxdepth 1 2> /dev/null
如果您确定它始终是/ a / b中的一个目录,那么只需将find的输出存储在变量中并继续前进。
注意:2> / dev / null只是为了摆脱错误的警告。