[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是干嘛用的
笔者通常会用这个方法来实现多端游戏存档同步,一些笔记同步之类的 大佬,问一下,就是说我在A电脑上编辑了某些文档,然后执行脚本以后,本地的就上传到了git上,然后我在B电脑上再执行该脚本,是否会进行差异对比,把更新的git上的版本下载到本地并覆盖B电脑上的旧版本? 这个思路可以,适用于程序员,对于其他从业人员可能有一些门槛了,Git使用中问题还是比较多的,比如冲突问题,需要有解决冲突的能力。不过单人使用问题不大。 学习学习 感谢分享,GIT确实是适合部分人使用 牛啊,大佬 类似于obsidian的git插件,把仓库放到github或者gitee上,使用git插件定时同步,nice 学习一下谢谢分享
学习一下谢谢分享 学习一下,感谢楼主分享 感谢分享,学习啦!{:1_893:}:lol{:1_893:}