我想在两个本地目录之间自动运行单向同步,使用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 选项:
您将需要fswatch
:
brew install fswatch
对于单线解决方案:
function run_rsync() { rsync your_args } ; run_rsync; fswatch -o your_directory | while read f; do run_rsync; done
感谢@Daniel 的鼓舞人心的回答。