linux双向同步两个本地文件夹

参考(膜大佬):https://blog.csdn.net/qq_26702065/article/details/52175560

思路

  • 用inotify监控文件夹,如果文件夹内有文件变化则输出变化情况
  • 每当inotify检测到文件变化时,就调用unison,把当前文件夹的变化发给另一个文件夹
  • 创建两个进程分别进行单向同步,从而变成了双向同步。

安装必要程序:

sudo apt install -y inotify-tools unison

单向同步

把下面的代码保存为syncto.sh

#/bin/bash

# $1: from
# $2: to
unison -batch $1 $2
inotifywait -mrq -e create,delete,modify,move $1 | while read line; do
        unison -batch $1 $2
done
  • inotifywait
    m: (monitor)一直监控
    r: (recursive)递归监测目录
    q: (quite)打印最少(只打印事件)
    e: (event)只监测后面的特定事件
  • unison
    batch: 不问任何问题

双向同步

保存为syncboth.sh

nohup syncto.sh $1 $2 &
nohup syncto.sh $2 $1 &

然后

bash syncboth.sh dir1/ dir2/

其中dir1和dir2必须是绝对路径。

这样即可同步两个文件夹了(前提是两个文件夹没有冲突的部分。建议先手动同步一下两个文件夹,否则容易出问题)

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值