/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
使用上面的命令仅列出目录,包括位于其他目录中的隐藏目录