From 3adba7a09dc9bf62eb1c94cf5a5300ae55148b97 Mon Sep 17 00:00:00 2001 From: wuko233 Date: Sun, 19 Apr 2026 21:19:46 +0800 Subject: [PATCH] =?UTF-8?q?[scanner]=20=E6=B7=BB=E5=8A=A0=E5=AF=B9?= =?UTF-8?q?=E7=AC=A6=E5=8F=B7=E9=93=BE=E6=8E=A5=E7=9A=84=E5=A4=84=E7=90=86?= =?UTF-8?q?=EF=BC=8C=E8=B7=B3=E8=BF=87=E6=8C=87=E5=90=91=E7=9B=AE=E5=BD=95?= =?UTF-8?q?=E7=9A=84=E7=AC=A6=E5=8F=B7=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/scanner/file/file.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/internal/scanner/file/file.go b/internal/scanner/file/file.go index 47d5c79..e159e83 100644 --- a/internal/scanner/file/file.go +++ b/internal/scanner/file/file.go @@ -162,6 +162,17 @@ func (s *Scanner) collectPathsFunc(result *[]string) fs.WalkDirFunc { return nil } + info, err := d.Info() + if err == nil { + if info.Mode()&os.ModeSymlink != 0 { + realInfo, err := os.Stat(path) + if err == nil && realInfo.IsDir() { + logger.Log.Debug("[scan]跳过指向目录的符号链接", zap.String("path", path)) + return nil + } + } + } + for _, exclude := range s.cfg.Scanner.File.ExcludePaths { if strings.HasPrefix(path, exclude) { logger.Log.Debug("[scan]跳过路径", zap.String("path", path), zap.String("reason", "匹配排除路径"))