如何以点开头的rsync文件夹?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何以点开头的rsync文件夹?相关的知识,希望对你有一定的参考价值。

我正在尝试同步一个maildir目录,该maildir目录中的某些文件夹包含以“dot”开头的目录

.Archive/
.Sent Items/

我尝试使用以下内容

$ rsync -pogutr --exclude="." --exclude=".." .*  /home/folder1/mail/domain/user1/ /home/folder2/mail/domain --progress
$ rsync -pogutr --exclude="../" /home/folder1/mail/domain/user1/.*  /home/folder2/mail/domain/ --progress
$ rsync -pogutr --include=".*" /home/folder1/mail/domain/user1  /home/folder2/mail/domain/ --progress

所有这些都将/home/folder1/mail/domain/中的其他子目录同步到/home/folder2/mail/domain/user1/目录中。

例如,如果/home/folder1/mail/domain/包含user1,user2和user3的子目录。然后user1,user2和user3的所有内容都将在/home/folder2/mail/domain/user1/目录中

答案

我伪造了一个包含文件的点文件夹的邮件目录,默认情况下它正确同步。

$ rsync --recursive --verbose maildir/ maildir-backup
sending incremental file list
created directory maildir-backup
./
.Archive/
.Archive/1
.Archive/2
.Archive/3
.Sent Items/
.Sent Items/bar
.Sent Items/baz
.Sent Items/foo

sent 481 bytes  received 182 bytes  1,326.00 bytes/sec
total size is 0  speedup is 0.00

我甚至尝试了你正在使用的额外标志(保留所有者,组,时间,权限等)

$ rsync -pogutr --verbose maildir/ maildir-backup
sending incremental file list
created directory maildir-backup
./
.Archive/
.Archive/1
.Archive/2
.Archive/3
.Sent Items/
.Sent Items/bar
.Sent Items/baz
.Sent Items/foo

sent 497 bytes  received 182 bytes  452.67 bytes/sec
total size is 0  speedup is 0.00

您只是不想或不需要排除“this”文件夹或父文件夹。这些不包含在任何路径中。

--exclude="." --exclude=".."
另一答案

使用2个rsync命令:1个正常,1个用于点文件夹。并指定点并逃避它。我用它来迁移到docker-poste并在我的docker主机上运行它:

rsync -e ssh -v -r -u root@10.10.0.7:/home/benny/Maildir/* /mnt/user/docker/poste/data/domains/example.com/benny/Maildir/
rsync -e ssh -v -r -u root@10.10.0.7:/home/benny/Maildir/.* /mnt/user/docker/poste/data/domains/example.com/benny/Maildir/
另一答案

尝试使用unison而不是rsync。此外,它会更快地同步。

以上是关于如何以点开头的rsync文件夹?的主要内容,如果未能解决你的问题,请参考以下文章

如何从目录中删除以点(。)开头的文件? [复制]

当此文件以点“。”开头时,C# 在 ftp 中读取文件(隐藏文件)[重复]

Apache 配置:正则表达式禁用对以点开头的文件/目录的访问

apache_conf 阻止访问隐藏文件(文件名以点开头)

touch .filename未隐藏文件

vscode 用户代码片段 vue初始化模板 Snippet #新加入开头注释 自动生成文件名 开发日期时间等内容