我想使用rsync在两个本地目录之间自动运行单向同步。这意味着当在/dir1或其子目录的文件中检测到更改时,应运行以下命令:
rsync -rtuv /dir1 /dir2
我如何使用fswatch实现这一点?
是否可以像fswatch事件所给出的那样,为rsync提供参数以仅复制已更改的实际文件?
发布于 2016-08-17 20:44:19
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--代表“”和递归同步,并保留符号链接、特殊文件和设备文件、修改时间、组、所有者和部分压缩--
排除文件
您将需要fswatch
brew install fswatch发布于 2022-03-03 08:56:31
对于单行解决方案:
function run_rsync() { rsync your_args } ; run_rsync; fswatch -o your_directory | while read f; do run_rsync; done感谢@Daniel的鼓舞人心的回答。
https://stackoverflow.com/questions/34575374
复制相似问题