rsync强大的文件同步工具
引子
备份docker镜像时需要将文件归档复制,留作备忘
正文
rsync常用参数
id:: 65e2c5a5-a39f-4bb2-938a-1f988dc4620d
参数 | 说明 | 助记 |
---|---|---|
-a |
已归档模式复制,尽可能保留文件原本的样子 | archive |
-v |
详情 | verbose |
-h |
人类可读 | human |
-n |
模拟执行结果,但不真的这样做 | |
--delete |
添加这个参数会让同步的原目录和目的目录保持相同,即删除目的目录中存在但原目录中不存在的内容 |
过滤
排除
--exclude='xxx'
支持正则
包含
--include='xxx'
必须包含,通常和--exclude
一起使用
过滤文件过多可以通过--include-from
和--exclude-from
指定文件进行过滤
一个正确使用include参数的例子
1 | rsync -avh --include='include' --include='include/*rc' --exclude='*' .vim/ .vimback |
exclude
要在include
后面
想要包含某个文件下的文件,这个文件也要被包含
远程同步
ssh
1 | rsync -avh source_file username@host:dest_file |
增量备份
这会使rsync以backup_old
为基准将(未修改的文件直接使用这个文件夹中的文件做硬连接到新的文件夹)有改动的文件同步到backup_new
中
1 | rsync -avh --delete source_file --link-dest backup_old backup_new |
使用rsync代替mv和cp
在.bashrc
或.zshrc
添加以下内容
1 | if type rsync > /dev/null 2>&1; then |
参考
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ziWindlu的博客!