【问题标题】:Bash command to get list of directories [duplicate]Bash命令获取目录列表[重复]
【发布时间】:2016-01-20 15:34:26
【问题描述】:

我想知道在满足以下条件的目录中获取当前目录列表的命令:

  • 不包括隐藏目录
  • 带空格的目录不会分成多个条目
  • 文件(和隐藏文件)不包含在列表中

(我打算在 bash 脚本中迭代这个列表)

【问题讨论】:

  • 使用全局表达式:*/ -- 例如for d in */; do ...

标签: bash


【解决方案1】:

您可以将其用于列表:

shopt -u dotglob
printf "%s\n" */

shopt -u dotglob 确保不匹配隐藏目录。

要进行迭代,您可以这样做:

for d in */; do
    echo "${d%/}"
done

【讨论】:

  • 我对 'd in */;' 的问题是不是我在每个名字的末尾都有一个斜杠 - 我怎样才能避免这种情况?
  • 检查更新的答案。 echo "${d%/}" 将剥离最后一个 /
【解决方案2】:
find . -maxdepth 1 ! -name '.*' -type d

满足您的所有需求

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-12
    • 1970-01-01
    • 2015-06-27
    • 2019-10-08
    • 2014-06-06
    • 2015-02-04
    • 2016-04-25
    • 2016-12-18
    相关资源
    最近更新 更多