这非常类似于这问题,但我需要更进一步。我正在使用 Synology 驱动器,并且有大量@eaDir
我想忽略的目录(以及这些目录中的文件)。我怎样才能做到这一点?
这是一个递归命令,可以很好地处理隐藏文件(我想要的)...但是如何更改它以排除目录名称@eaDir
?
find .//. ! -name . -print | grep -c //
答案1
如果您不想进入任何指定的目录,@eaDir
则不应使用!
before -name
:
mkdir -p a/@eaDir
mkdir -p b/c/@eaDir
mkdir -p d/e/f
touch a/@eaDir/xxx
touch b/yyy
touch b/c/@eaDir/xxx
touch d/e/f/yyy
find . -name '@eaDir' -prune -o -print
会给你:
.
./b
./b/yyy
./b/c
./a
./d
./d/e
./d/e/f
./d/e/f/yyy
和
find .//. -name '@eaDir' -prune -o -print | grep -c //
会给你:9
如果名称匹配,-name '@eaDir'
则跳过下面的树的其余部分('-prune'),否则打印名称(-o -print
)