windows和linux下的文件夹同步

本文详细介绍了如何利用rsync命令在Windows环境中实现特定文件类型(如.txt和.bak)的同步,并且如何排除同步空文件夹,避免不必要的文件传输。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在写一个eclipse 插件,用于将一个项目中的指定类型的文件同步到另一个文件夹下(在本机执行)

之前研究过的文件同步是从本地到远程,可以使用ssh连接和命令,本机文件夹同步最好的方法是使用同步命令。

windows环境下使用robocopy

robocopy [src directory] [des directory] *.txt *.bak /s

这里是同步src目录下的txt和bak文件到des目录下,不复制空文件夹

其他的操作可以查看robocopy的指南。

同样的操作在linux下就没有这么容易了,考虑过使用cp命令,但是cp命令首先需要执行find命令

将结果作为管道输出给cp命令,这样还不如写sh脚本,于是动起了rsync命令的注意,毕竟它是文件夹同步最常用的,

可以用于本机和远程,也应该可以用于本机文件夹之间。

研究过程中遇到的最大问题是如何像robocopy一样限制复制文件类型和不复制空文件夹,

最后前一条使用include="*."{txt,bak},后一条使用 --prune-empty-dirs 这个options解决

rsync -arvP --prune-empty-dirs -u --include="*/" --include="*."{txt,bak} 

--exclude="*" [src directory] [dst directory]

剩下的问题就是只同步更新过的文件和设置复制文件的访问权限了。








转载于:https://my.oschina.net/u/237688/blog/516246

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值