You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用rclone排除根目录下的dir1及所有subdir2目录?

需求与目录结构

目录结构:

├───dir1
│   ├───subdir1
│   ├───subdir2
│   └───subdir3
├───dir1 2
│   ├───subdir1
│   ├───subdir2
│   └───subdir3
├───dir2
│   ├───dir1
│   ├───dir12
│   ├───subdir2
│   └───subdir3
└───dir3
    ├───dir1
    └───dir13

每个目录及其子目录都包含file0、file1、file2三个文件。

需实现的过滤目标:

  • 过滤根目录下的dir1(但保留dir1 2)
  • 过滤所有位置的subdir2目录及其内容
尝试过的命令与问题

执行命令:

rclone.exe ls --dump filters -vv --exclude "{/dir1/**,subdir2/**}" "src"

生成的过滤规则正则:

--- start filters ---
--- File filter rules ---
- (^|/)(/dir1/.*|subdir2/.*)$
--- Directory filter rules ---
- (^|/)(/dir1/.*|subdir2/.*)$
--- end filters ---

结果:所有subdir2目录被成功排除,但根目录下的dir1及其内容未被过滤。

还尝试过以下模式,均无法实现需求:

  • {<full_path_to>/src/dir1/**,subdir2/**}
  • {/dir1/,subdir2/**}

使用{dir1/,subdir2/**}会过滤所有位置的dir1(包括dir2/dir1、dir3/dir1),不符合要求。

解决方案

使用带锚定符^的过滤模式,精准匹配根目录下的dir1,同时全局排除subdir2:

rclone.exe ls --dump filters -vv --exclude "{^dir1/**,subdir2/**}" "src"

原理说明

  • ^dir1/**:^锚定到远程路径的根目录,仅匹配根目录下的dir1及其所有子内容,不会影响其他目录下的dir1(如dir2/dir1、dir3/dir1)。
  • subdir2/**:匹配任意位置的subdir2目录及其所有内容,实现全局排除。

执行该命令后,根目录下的dir1会被完全过滤,dir1 2及子目录中的dir1会被保留,所有subdir2目录也会被排除。

内容的提问来源于stack exchange,提问作者Mattia72

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 07:54:54