0

find . -type d用来列出文件夹中的所有目录。现在说我在我的home文件夹中。

我的结果是这样的:

.
./.cache
./.config/junk
./Documents
./Downloads
./.local/share/junk1
./.local/share/junk2
./.mozilla/junk1
./Pictures
./Videos

但是,我不希望那些隐藏文件出现在列表中。做find . -type d | grep -v ./.是行不通的。在这种情况下,它仅显示.为输出。

知道如何过滤掉那些隐藏的文件夹吗?

4

2 回答 2

1

尝试这个:

find ...|grep '^./[^.]'

顺便说一句,find有选项regex,您可以考虑使用,以便保存该grepcmd。

例如

find . -type d -a -regex '^./[^.].*'
于 2013-05-03T16:39:52.983 回答
0

你忘了逃避你的模式。

.匹配任何字符。

\.匹配点字符。

^exp匹配以 . 开头的模式exp

如果您只想过滤掉基本级别的隐藏文件夹:

find . -type d | grep -v '^\./\.'

如果要过滤掉所有深度的隐藏文件夹:

find . -type d | grep -v '/\.'

于 2013-05-03T19:19:58.480 回答