如何grep当前目录,父目录和一个定义的文件旁边的所有文件?

How to grep all files beside current dir, parent dir and one definded?

我有一个包含以下文件/文件夹的文件夹:

.test
README.md
/dist
/src

我想 grep dist 旁边的所有文件。所以结果应该是这样的:

.test
README.md
/src

当我做的时候

ls -a | grep -v dist

它将删除 dist。但是 ... 存在。但是我需要 -a 来获取带有点前缀的文件。

当我尝试添加 ls -a | grep -v -e dist -e . -e .. 时没有输出。

为什么 -e . 会删除所有文件?怎么做?

最好将 find-not 选项一起使用,而不是容易出错 ls | grep:

find . -maxdepth 1 -mindepth 1 -not -name dist

顺便说一句,只是为了解决您的尝试,正确的 ls | grep 将是:

ls -a | grep -Ev '^(dist|\.\.?)$'

如果你使用bash,你可以这样做:

shopt -s extglob
echo .[^.]* !(dist)