如何使用shell命令导航到单个子目录而不知道其名称?

时间:2016-11-15 09:16:31

标签: linux bash

我需要使用runCommand()方法从我的JAVA代码在远程机器中运行脚本。现在,我不能总是知道脚本的完整路径,因为特定的目录名称不断变化。例如,路径如下所示: / a / b / xxxxx / script xxxx 是不断更改的目录名称,是/ a / b /下唯一的单个目录。是否有任何shell命令用于获取目录名称?我知道使用JAVA,但我特别需要shell命令。

2 个答案:

答案 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只是为了摆脱错误的警告。

相关问题