我知道有很多关于rsync
排除特殊情况的帖子,并且我花了一些时间来寻找解决方案,但我认为更适宜的是听从社区思想力量,我相信它可以在几秒钟内为我指明正确的方向。
我正在复制许多不同用户的主目录,但由于目前不相关的原因,需要基本上消除许多不同的配置,并且由于每个用户差异很大,我想编写一行rsync
可以在用户的任何主文件夹中运行的行,以排除所有隐藏文件夹(除了.ssh和.mozilla如果适用),但仍会捕获主文件夹中的隐藏文件,例如.bash_history,。轮廓ETC。
包括.ssh和其他指定文件夹目前很重要,因为其他常用文件夹可以/应该在以后添加到该列表中。但目前,除非另有说明,否则我需要基本上排除所有隐藏文件夹。
我以为这会起作用,但遗憾的是它不起作用:
$ rsync -vahP --delete-before --include="*" --include={".ssh/",".mozilla/"} exclude=".*/" ./ /mount/anotherdisk/username/
我究竟做错了什么?
答案1
如果我删除选项--include="*"
并将忘记的破折号添加到--exclude
选项中,它对我来说是有效的,例如:
rsync -vahP --delete-before --include={'.ssh/','.mozilla/'} --exclude='.*/' /home/username/ /mount/anotherdisk/username