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

如何让rsync按数字顺序同步以序号命名的文件?

解决rsync按数字顺序同步文件的问题

核心问题原因

你之前用--files-from没达到预期,是因为rsync默认会自动对--files-from传入的列表做字典序排序,完全忽略你输入列表的原有顺序——哪怕你生成的list是数字顺序,rsync还是会重新排序。

解决方案步骤

1. 生成准确的数字顺序文件列表

两种可靠方式:

  • 方式一:用ls的自然排序(适合文件已存在的场景)
    执行ls -v *.tld > list-of-files.txt,-v参数会按数字大小排序,完美匹配你的1.tld、2.tld...命名规则,比-tr更靠谱(-tr是按修改时间排序,若文件创建/修改时间混乱就会出错)。
  • 方式二:用printf生成精确列表(适合明确最大文件编号的场景)
    如果确定最大编号是3550,直接用printf "%s\n" {1..3550}.tld > list-of-files.txt,这个命令会直接生成1到3550的顺序列表,哪怕某个文件缺失,rsync同步时会自动跳过不存在的文件,不影响流程。

2. 让rsync严格按列表顺序同步

执行rsync时加上--no-sort参数,禁用它的自动排序行为,命令如下:

rsync -avz --no-sort --files-from=list-of-files.txt source/ dest/

注意:source后面要加斜杠/,避免rsync在dest里额外创建一个source目录。

中途中断后的续传技巧

如果中途按Ctrl-C终止,想要继续从上次中断的位置同步:

  1. 查看rsync输出的最后一行,找到最后一个成功同步的文件(比如7510.tld)。
  2. 生成新的列表,从下一个编号开始:
    printf "%s\n" {7511..3550}.tld > new-list.txt
    
  3. 用新列表继续同步即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 02:37:26