我想在两个本地目录之间自动运行单向同步rsync
.意味着在文件/dir1
或其子目录中检测到更改时,应运行以下命令:
rsync -rtuv /dir1 /dir2
我怎样才能实现这个目标fswatch
?
是否可以提供参数rsync
以仅复制fswatch
事件所给出的已更改的实际文件?
alias run_rsync='rsync -azP --exclude ".*/" --exclude ".*" --exclude "tmp/" ~/Documents/repos/my_repository username@host:~' run_rsync; fswatch -o . | while read f; do run_rsync; done
第二行run_rsync
无条件运行一次然后 - 在当前目录中的每次更改(或指定精确路径而不是.
)
Rsync选项:
-a - 代表"archive"并递归同步并保留符号链接,特殊和设备文件,修改时间,组,所有者和权限.
-z - 压缩
-P - 结合标志--progress和--partial.第一个为您提供转移的进度条,第二个允许您恢复中断的转移
--exclude - 按模式排除文件
你需要fswatch
:
brew install fswatch