如何使用 bash 命令列出文件夹?

如何使用 bash 命令列出文件夹?

有没有办法使用 bash 命令列出目录中的文件夹?(因为该ls命令列出了所有文件和文件夹)

答案1

您可以使用:

ls -d -- */

由于所有目录都以 结尾/,因此这仅列出当前路径中的目录。-d选项确保只打印目录名称,而不打印其内容。

答案2

Stephen Martin 的回复给出了警告,并列出了当前文件夹,所以我建议

find . -mindepth 1 -maxdepth 1 -type d

(这是在 Linux 上;我在 POSIX 手册页中找不到 -maxdepth 和 -mindepth)

答案3

find . -maxdepth 1 -type d

仅列出文件夹。正如 Teddy 指出的那样,您需要 -maxdepth 来阻止它循环进入子目录

答案4

有人说你“不应该”解析 ls 的输出。如果我没记错的话,背后的原因是输出旨在供人类阅读,而这可能会使解析变得不必要地复杂。

如果您不想要 ls 或 find,您可能需要尝试使用“[ -d ]”过滤“*”。

我就是这么做的,因为某种原因 ls 和 find 不起作用(我猜是文件名中有空格和括号,或者是我忽略了其他东西),然后我做了类似的事情

for f in * ; do [ -d "$f" ] && echo $f is indeed a folder ; done

相关内容