使用 rsync 排除隐藏文件夹,但包括特定的隐藏文件夹并包括所有隐藏文件

使用 rsync 排除隐藏文件夹,但包括特定的隐藏文件夹并包括所有隐藏文件

我知道有很多关于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

相关内容