v_52pojie 发表于 2024-7-30 04:06

[shell脚本] 一个脚本文件实现多端同步文件夹

本帖最后由 v_52pojie 于 2024-7-30 04:29 编辑

说明: 用一个脚本,实现多端同步文件夹内容(建议同步的都是些txt,doc,md文件等)

实现思路: 使用github/gitee等平台实现文件管理功能, 来实现云文件同步(至于git是做什么的,此处不做过多说明)

需要工具: git

步骤:
① 到gitee(会科学上网的也可以用github)上新建登录一个账号, 新建一个仓库, 按照平台上面的教程在本地初始化仓库并与远端仓库建立起联系


② 在本地仓库新建一个文本文件, 重名名 "#AutoUpdate.sh" (个人习惯带上#, 方便按照名字顺序找到), 并编辑贴上下面代码


```shell


#!/bin/bash

DATETIME=`date "+%Y-%m-%d %H:%M:%S"`

# 切换到脚本所在目录
cd -- "$(dirname "$BASH_SOURCE")" || exit

# 执行Git操作
# 检测git空间状态
if [[ -n $(git status --short)]];then
# 提交推送
git add .
git commit -m "synchronization $DATETIME"
git pull
git push
# git push --set-upstream origin $TARGET_BRANCH
else
git pull
echo "workspce no changes"
fi

# 保持终端运行
read -n 1 -s -r -p "按任意键继续..."



```


③ 如果是windows用户,右键配置sh文件的默认执行程序为git终端; 配置后就可以通过双击"#AutoUpdate.sh"文件实现云同步文件夹下的文件
如果是macOS用户, 想要实现双击方式同步文件夹下文件, 按照下面步骤来

右键打开方式 - 选择默认打开方式 - 勾选所有执行程序 - 使用工具/终端


命令行给文件添加属性
chmod +x #AutoUpdate.sh


用这个方法最好是知道git是干嘛用的
笔者通常会用这个方法来实现多端游戏存档同步,一些笔记同步之类的

醉酒听风 发表于 2024-10-9 12:33

大佬,问一下,就是说我在A电脑上编辑了某些文档,然后执行脚本以后,本地的就上传到了git上,然后我在B电脑上再执行该脚本,是否会进行差异对比,把更新的git上的版本下载到本地并覆盖B电脑上的旧版本?

cnyasin 发表于 2024-7-30 08:23

这个思路可以,适用于程序员,对于其他从业人员可能有一些门槛了,Git使用中问题还是比较多的,比如冲突问题,需要有解决冲突的能力。不过单人使用问题不大。

liangxy97 发表于 2024-7-30 08:30

学习学习

LuGuanDi 发表于 2024-7-30 08:53

感谢分享,GIT确实是适合部分人使用

panghu9670 发表于 2024-7-30 09:12

牛啊,大佬

guyueyiren 发表于 2024-7-30 10:03

类似于obsidian的git插件,把仓库放到github或者gitee上,使用git插件定时同步,nice

wei7758 发表于 2024-7-30 10:03

学习一下谢谢分享            

FishDreamer 发表于 2024-7-30 10:21


学习一下谢谢分享

guige2023 发表于 2024-7-30 10:31

学习一下,感谢楼主分享

JSX 发表于 2024-7-30 11:05

感谢分享,学习啦!{:1_893:}:lol{:1_893:}
页: [1] 2 3
查看完整版本: [shell脚本] 一个脚本文件实现多端同步文件夹