如何使用选项列出其他目录中的所有目录?

如何使用选项列出其他目录中的所有目录?

/etc/如果我不在给定目录(例如)中,我想仅列出该目录中的目录(包括隐藏目录) 。

如果我想列出所有目录,包括隐藏目录,我使用以下命令:

ls -d */ .*/

我想使用这个命令列出/etc.

ls /etc

我可以做到这一点,但我想将其与第一个结合起来,仅列出目录。

ls -d */ .*/ /etc

或者

ls /etc -d */ .*/

不工作。为什么?

答案1

它不起作用,因为*/.*/不是直接传递给的参数ls- 相反,它们是由 shell 扩展的全局变量,给出当前目录中的匹配文件名列表,这些文件名本身传递给ls

不同目录的等效项(/etc比如说)是

ls -d /etc/*/ /etc/.*/

如果您的 shell 支持大括号扩展,则可以更紧凑地编写为

ls -d /etc/{,.}*/

答案2

find /etc/ -maxdepth 1 -type d

使用上面的命令仅列出目录,包括位于其他目录中的隐藏目录

相关内容