Beyond Compare 命令行工具的用法
目录
安装
需手动点击,Beyond Compare 菜单:安装命令行工具。
主要有两大工具:
-
/usr/local/bin/bcomp: 启动比较并等待它完成。
-
/usr/local/bin/bcompare: 启动比较并立即返回。
BC 业务脚本编写1
# Turn logging on.
log normal "/Users/yuhanliu/Documents/yuhan/config/crontab/beyondcompare.log"
# Load the default session and exclude all but certain file types.
load <default>
filter ".DS_Store"
filter cutoff:<1000days
# Load the base folders.
load "/Users/yuhanliu/Documents/projects/temp" "/Users/yuhanliu/Documents/yuhan/sites/blog-tech-hugo-md/content/p"
# Copy different files left to right, delete orphans on right.
sync mirror:left->right
一些命令的用法总结如下2:
load <session>
load [create:(all|left|right)] <left path> [<right path>]
load <default>
filter <file masks>
filter cutoff:([<|>](<timestamp>|<number of days>[days])|none)
filter attrib:((+|-)<attribute set>|none)
filter size:([<|>]<number>[KB|MB|GB|TB]|none)
filter exclude-protected
filter include-protected
sync [visible] [create-empty] (update|mirror):(left->right|right->left|all)
注意一定要在偏好设置->调整->脚本->共享的脚本文件夹中设置,否则脚本执行会报无法打开文件或找不到文件的ERROR!
你这里面有个日志文件,看是不是要自己建一个哟:beyondcompare.log
。
最终我这个脚本运行成功,但是并没有把文件复制过去,裂开。
Shell 脚本编写
#! /bin/zsh
source ~/.zshrc
# 1 同步文件
/usr/local/bin/bcomp "@/Users/yuhanliu/Documents/yuhan/config/crontab/temp-p-sync.text"
# 2 Git 提交
eval `ssh-agent -s` # 使用之前必须启动它
ssh-add ~/.ssh/id_ed25519_github_dfface
cd /Users/yuhanliu/Documents/yuhan/sites/blog-tech-hugo-md
git add .
sleep 5 # 防止并发卡壳
git config commit.gpgsign false # 本次不使用 GPG 签名
git commit -m "Content File Changed."
git config commit.gpgsign true # 恢复过来
sleep 5
# 3 Git 推送
git push
记得给予脚本可执行的权限:
chmod +x temp-p-sync.sh
注意 bcomp
命令,后面的脚本文件请一定用绝对路径,相对路径它也找不到,没在偏好设置里面写上共享的脚本文件夹它也找不到。建议排查命令错误的时候,不要加上-silent
选项。
Crontab 定时任务编写
30 15,22 * * * /Users/yuhanliu/Documents/yuhan/config/crontab/temp-p-sync.sh > /Users/yuhanliu/Documents/yuhan/config/crontab/temp-p-sync.log 2>&1
表示每天15:30和22:30将运行temp-p-sync.sh
文件。
注意:
crontab
最小的时间单位: 1分钟,没有秒、年!分 时 日 月 周 命令 !crontab file
只能在同一个文件追加任务,因为再执行一次,就会替换当前的定时任务而不是新增3!- 注意使用
ssh-add
之前要启动ssh-agent
4。 - 上面加的
#! /bin/zsh
和source ~/.zshrc
环境变量在这里其实一点作用都没有! - 如果脚本执行失败,原因是 BC 的问题,显示无法打开它那个脚本,为什么?你没有在偏好设置中,设置“共享的脚本文件夹”!
启动定时任务
└> crontab cron-file
└> crontab -l
0 15 * * * /Users/yuhanliu/Documents/yuhan/config/crontab/rclone-onedrive-lyh.sh > /Users/yuhanliu/Documents/yuhan/config/crontab/rclone-onedrive-lyh.log 2>&1
30 15,22 * * * /Users/yuhanliu/Documents/yuhan/config/crontab/temp-p-sync.sh > /Users/yuhanliu/Documents/yuhan/config/crontab/temp-p-sync.log 2>&1