如何在Rclone中排除特定类型的文件?
美国、香港服务器
如何在Rclone中排除特定类型的文件?
12-03 来源:
在 Rclone 中排除特定类型的文件,核心是通过 --exclude 参数结合通配符精准匹配文件后缀,支持单类型、多类型、指定目录下的类型排除,还可通过规则文件批量配置,以下是分场景的实操方法:
一、核心语法(基础排除)
排除特定类型文件的核心规则是:--exclude "*.后缀"(* 匹配任意文件名,.后缀 限定文件类型)。
1. 排除单个类型文件
bash
运行
# 排除所有 .tmp 临时文件
rclone sync /data alioss:backup -P --exclude "*.tmp"
# 排除所有 .log 日志文件
rclone sync /data alioss:backup -P --exclude "*.log"
2. 排除多个类型文件
多个类型用多个 --exclude 参数,或用 | 组合(需加引号):
bash
运行
# 方式1:多 --exclude 参数(推荐,可读性高)
rclone sync /data alioss:backup -P --exclude "*.tmp" --exclude "*.zip" --exclude "*.bak"
# 方式2:通配符组合(部分系统需转义 |,如 Linux 加 \)
rclone sync /data alioss:backup -P --exclude "*.{tmp,zip,bak}"
二、进阶场景:限定范围排除
1. 仅排除指定目录下的特定类型
若只想排除 /data/tmp 目录下的 .log,而非所有目录的 .log,需限定路径:
bash
运行
# 仅排除 /data/tmp 下的 .log 文件(含子目录)
rclone sync /data alioss:backup -P --exclude "/data/tmp/**/*.log"
# 仅排除 /data/cache 下的 .tmp 文件(仅当前目录,不含子目录)
rclone sync /data alioss:backup -P --exclude "/data/cache/*.tmp"
2. 排除隐藏类型文件(如 .DS_Store、.gitignore)
bash
运行
# 排除所有以 . 开头的隐藏文件(通用)
rclone sync /data alioss:backup -P --exclude ".*"
# 仅排除 .DS_Store(mac 系统)和 .gitignore
rclone sync /data alioss:backup -P --exclude ".DS_Store" --exclude ".gitignore"
3. 排除压缩包类多类型文件
bash
运行
# 排除 zip、rar、7z、tar.gz 等压缩包
rclone sync /data alioss:backup -P \
--exclude "*.zip" \
--exclude "*.rar" \
--exclude "*.7z" \
--exclude "*.tar.gz" \
--exclude "*.tar.bz2"
三、批量排除:通过规则文件配置
若需排除的文件类型较多(如 10 + 种),建议编写过滤规则文件(如 exclude-types.txt),避免命令行过长:
1. 编写规则文件
txt
# exclude-types.txt 内容(- 开头表示排除)
- *.tmp
- *.zip
- *.bak
- *.log
- *.tar.gz
- .DS_Store
2. 执行同步(读取规则文件)
bash
运行
rclone sync /data alioss:backup -P --exclude-from exclude-types.txt
四、避坑与验证
1. 关键注意事项
通配符层级:*.log 排除所有目录下的 .log(含子目录);若只想排除当前目录的 .log,需限定路径(如 /data/*.log)。
大小写敏感:默认区分大小写(如 .Log 不会被 *.log 排除),加 --ignore-case 忽略大小写:
bash
运行
rclone sync /data alioss:backup -P --exclude "*.log" --ignore-case
避免误排除目录:排除规则仅针对文件,若需排除目录(如 tmp/),需写 --exclude "tmp/**"。
2. 预演验证(必做)
执行同步前,用 --dry-run 验证排除规则是否生效,避免漏同步 / 误删除:
bash
运行
rclone sync /data alioss:backup -P --exclude "*.tmp" --exclude "*.zip" --dry-run
输出中会显示「Would exclude」的文件,确认符合预期后再移除 --dry-run 执行真实同步。
五、常用排除模板(直接复用)
需求场景 命令示例
排除临时 / 备份文件 --exclude "*.tmp" --exclude "*.bak" --exclude "*.swp"
排除图片 / 视频文件 --exclude "*.jpg" --exclude "*.png" --exclude "*.mp4" --exclude "*.avi"
排除编译产物(Java/Go) --exclude "*.class" --exclude "*.jar" --exclude "*.exe" --exclude "*.so"
排除 node.js 依赖目录 + 产物 --exclude "**/node_modules/**" --exclude "*.lock" --exclude "dist/**"
三二互联专业提供香港VPS,美国VPS主机,香港云服务器租用等业务香港美国到大陆CN2 GIA速度最快