【问题标题】:Bash - How to get the name a folder inside the current folder?Bash - 如何获取当前文件夹中的文件夹名称?
【发布时间】:2012-05-23 05:37:38
【问题描述】:

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

编辑

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

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

如何找到/randomfolder 的名字?

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

【问题讨论】:

  • 举个例子有助于清晰。
  • 您对运行 sript 时的文件夹名称了解多少?换句话说,您的脚本如何知道要查找的文件夹?还是只能有一个?
  • @ColinD, don't parse ls

标签: bash shell directory


【解决方案1】:

假设只有一个子目录:

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

如果你没有 GNU find,那么

for f in *; do [[ -d "$f" ]] && { dir=$f; break; }; done

【讨论】:

    【解决方案2】:
    dirs=(/testfolder/*/)
    

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

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

    echo "$dirs"
    

    echo "${dirs[0]}"
    

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

    for dir in "${dirs[@]}"
    do
        echo "$dir"
    done
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-09
      • 2015-10-17
      • 1970-01-01
      相关资源
      最近更新 更多