如何在 mac/linux 终端中仅列出隐藏目录?

如何在 mac/linux 终端中仅列出隐藏目录?

猜完这个我就厌烦了:

ls -A | grep -E ^.

我以为正则表达式插入符号^的意思是“行以...开头”。我希望使用正则表达式^.来匹配以点开头的文件...但我仍然看到常规文件而不仅仅是隐藏目录(以句点开头的目录,例如 .ssh 和 .config)。

将会重复未回答的问题:仅显示特定目录中的隐藏文件

正确输出示例:

.aws
.bash_history
.bashrc
.cache
.cloud-locale-test.skip
.config
.dbshell
.gnupg

答案1

您需要.在将其传递给 grep 时对其进行转义,否则它将被解释为“任何字符”。grep 接受\转义字符。但是,shell 也使用\转义,因此您需要将整个模式放在单引号中:

ls -a | grep '^\.'

答案2

@mikel 的第一个答案是正确的,但更短的替代方案是ls -ad .*。它也更容易记住(对我来说),尽管它在输出中包含“。”和“.。”。您可以使用ls -ad .??*以确保它们不会出现,但这有点难记住。

相关内容