V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
zxCoder
V2EX  ›  问与答

关于文件同步的一个需求

  •  
  •   zxCoder · 2020-11-04 14:56:46 +08:00 · 1282 次点击
    这是一个创建于 1510 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有个小需求,写一个命令行程序,可以将本地文件夹的文件给同步到远程数据库中,文件不大,都是 markdown 格式,但是我希望每次执行命令能够识别哪些是新加的文件,哪些是原来的文件但是修改了(文件名,文件内容),哪些已经删除了,想不出有什么好办法

    12 条回复    2020-11-07 14:33:15 +08:00
    starzh
        1
    starzh  
       2020-11-04 15:28:05 +08:00
    说一下我的想法
    在 Linux 里面每个文件有自己的 inode,每次同步前比较远程存的 inode 和本地文件的 inode 来判断新文件和删除的文件,判断原文件是否修改就需要算哈希了
    qiayue
        2
    qiayue  
       2020-11-04 15:31:20 +08:00
    假设你原先有一个文件 v2ex.md 内容是 v2ex.com
    后来你修改文件 v2ex.md 的内容为 www.v2ex.com
    再后来你添加了一个新文件 v3ex.md 内容是 www.v3ex.com

    那么程序怎们能够识别你这个 v3ex.md 到底是新文件,还是旧文件 v2ex.md 修改过来的呢?
    kidlj
        3
    kidlj  
       2020-11-04 15:32:56 +08:00
    git?
    Tianao
        4
    Tianao  
       2020-11-04 15:57:35 +08:00 via iPhone
    调用 diff 工具 /库。
    shyling
        5
    shyling  
       2020-11-04 15:57:51 +08:00
    学学 git 怎么做
    DoctorCat
        6
    DoctorCat  
       2020-11-04 16:13:02 +08:00
    文件目录树对比
    文件 hash 对比
    求远程与本地文件名二者的差集...
    rshun
        7
    rshun  
       2020-11-04 17:33:52 +08:00
    rsync 呢?
    fenglangjuxu
        8
    fenglangjuxu  
       2020-11-04 18:55:46 +08:00 via iPhone
    内容 md5?
    widewing
        9
    widewing  
       2020-11-04 19:17:59 +08:00 via Android
    这不就是 git 吗。。
    dangyuluo
        10
    dangyuluo  
       2020-11-04 19:18:39 +08:00
    定义什么是数据库
    felixcode
        11
    felixcode  
       2020-11-04 19:23:58 +08:00 via Android
    用 git 来管理
    maxbon
        12
    maxbon  
       2020-11-07 14:33:15 +08:00
    inotify
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3242 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 12:20 · PVG 20:20 · LAX 04:20 · JFK 07:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.