rclone如何仅复制目录下的.png文件?通配符命令报错怎么解决
报错本质
shell执行命令时,会优先将通配符dir1/*.png展开为66个独立的.png文件路径,再将所有展开后的路径作为入参传给rclone。而rclone的copy命令仅支持接收2个非flag参数(即源路径、目标路径),大量被shell拆出来的文件路径被判定为非法入参,最终触发参数数量超限的报错。
正确操作方案
- 方案1:使用rclone原生过滤规则,完全绕开shell的通配符展开逻辑
执行命令:rclone copy dir1/ gdrive:dir2/ --include '*.png'
该逻辑由rclone自行遍历dir1目录下的文件,仅匹配名称符合*.png规则的文件完成拷贝。操作时注意过滤规则必须用单引号包裹,避免shell提前解析通配符。 - 方案2:对通配符做转义处理,阻止shell提前展开
执行命令:rclone copy dir1/\*.png gdrive:dir2/
转义后的*不会被shell识别为通配符,会带着通配符的源路径字符串被完整传给rclone,由rclone自身完成文件匹配逻辑。
关键注意点
- 若需要递归匹配
dir1所有子目录下的.png文件,需要将过滤规则调整为--include '**/*.png',仅写*.png只会匹配dir1根目录下的文件,不会遍历子文件夹。 - 传入rclone的非flag参数必须固定为「源路径」「目标路径」2个,任何多余的入参都会触发该类参数超限报错。
内容的提问来源于stack exchange,提问作者burcak
相关产品推荐
相关产品推荐

