首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用rsync复制时忽略windows隐藏文件

使用rsync复制时忽略windows隐藏文件
EN

Server Fault用户
提问于 2009-11-12 13:09:20
回答 3查看 3.1K关注 0票数 3

我需要在Windows机器和Linux机器之间保持一个非常大的目录结构(几百GB)的同步。我使用rsync进行复制,因为它会自动忽略未更改的文件,并且更能有效地复制更改的文件(只复制差异)。

我遇到的问题是,一些运行在Windows文件系统上的应用程序喜欢生成各种我不想复制的元数据文件。由于所有这些文件都是使用Windows文件属性隐藏的,我认为简单地指示rsync忽略这些文件是非常有帮助的。但是rsync手册页不提供任何这样的选项。

目前,我使用SMB挂载Windows文件系统。当我使用控制台列出目录中的文件(使用ls -l)时,它会列出包括隐藏文件在内的所有文件,但当我使用nautilus列出文件时,它会识别一些文件是隐藏文件,并且只有在启用“显示隐藏文件”时才向我显示它们。所以我不确定rsync是否能看到Windows文件是隐藏的。

任何建议都会很有帮助。

EN

回答 3

Server Fault用户

回答已采纳

发布于 2009-11-15 20:42:14

要将DOS属性导入Linux,您需要编辑smb.conf文件。

导入Windows属性有两种不同的方法。

第一个选项是设置map hidden = yes,这意味着Windows上的隐藏文件将在Linux上设置世界执行位。要使其工作,至少还必须在您的001中使用create mask

另一个选项是设置store dos attributes = yes,这意味着user.DOSATTRIB属性将存储在名为user.DOSATTRIB的Linux文件系统中的扩展属性中。

rsync不具备基于普通属性或扩展属性过滤文件的能力,但它可以排除以其他方式准备的文件列表。您可以使用find命令根据Unix属性创建此列表。我所拥有的find版本似乎不支持扩展属性,但仍然可以在find中使用-exec选项获取所有文件的扩展属性并对其进行筛选。

由于find可以在普通Unix权限上进行筛选,如果您选择了world选项,那么find . -perm -001将在您安装的Windows文件系统中找到所有隐藏的文件。可以将此列表放入文件中,然后使用rsync --exclude-from=FILE从rsync中排除这些文件。

票数 1
EN

Server Fault用户

发布于 2009-11-12 14:12:52

我不相信rsync有任何洞察力,在Windows文件共享中哪些文件被标记为“隐藏”。这些文件是否还有其他共同之处,如命名格式?您可以使用--排除或-排除-从选项到模式匹配文件名不复制。(

票数 0
EN

Server Fault用户

发布于 2009-11-12 14:32:11

我没有给你的答案,但我不认为rsync是正确的地方寻找。我会尝试在窗口端的共享选项中找到一些东西,或者一个mount.cifs选项。

使用ACL扩展名可能是可能的,但是传统的unix权限中没有任何东西可以隐藏文件。如果将句点作为文件/ dir名称中的第一个字符,它就会被隐藏。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/84005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档