4

假设我的脚本在一个文件夹中运行,并且在这个文件夹中是另一个文件夹,其名称可以在我每次运行脚本时更改。如何找到该文件夹​​的名称?

编辑

例如,假设我的脚本在文件夹中运行,该文件夹/testfolder是已知的并且不会更改。

还有/testfolder另一个文件夹 : /testfolder/randomfolder,它是未知的并且可以更改。

我如何找到 的名称/randomfolder

我希望它更清楚,抱歉造成混乱。

4

2 回答 2

12
dirs=(/testfolder/*/)

dirs将是一个数组,其中包含作为 . 的直接子目录的每个目录的名称/testfolder

如果只有一个,您可以像这样访问它:

echo "$dirs"

或者

echo "${dirs[0]}"

如果有多个并且您想遍历它们:

for dir in "${dirs[@]}"
do
    echo "$dir"
done
于 2012-05-15T17:41:50.367 回答
6

假设只有一个子目录:

dir=$(find . -mindepth 1 -maxdepth 1 -type d)

如果你没有 GNU find,那么

for f in *; do [[ -d "$f" ]] && { dir=$f; break; }; done
于 2012-05-15T17:21:52.103 回答