禁止在我的cfs或smb网络存储上存储不可见文件“ ._”


34

我使用OS X Mavericks,并安装了一些公司存储驱动器(使用smb或cfs)。(smb://username@address.path.toserver.com/directory/data)。当我使用驱动器上的文件或将文件复制到驱动器上时,会创建一些隐藏文件。这些文件大多数以点破折号开头,._然后是原始文件的文件名,例如:

._test001.png
._test002.png
._test003.png

大多数时候,著名的._.DS_Store.DS_Store也都在那里。

在我的Mac上,这些.点项目是不可见的,但是我的Windows同事确实可以看到这些文件。如何防止OS X制作这些奇怪的不可见文件?

support.apple.com(和其他Internet来源)上,您可以找到“默认写操作”以禁止在网络驱动器上创建.DS_Store文件。但这在Mavericks中不起作用:

defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true

现在,我使用此oneliner,但rm -rf在这种情况下执行操作确实感觉不对。

find . -type f -name "._*" -exec rm "{}" \;

编辑:我不想删除文件或将其排除在复制之外。我希望不要一开始就创建它们。

编辑:与第三方应用程序相比,我更喜欢“本机” OS X解决方案。

编辑:此问题有两个答案,一个用于._文件,一个用于.DS_Store文件。赏金得到了回报dot_clean,此本地命令行应用程序清除了所有._文件。不幸的是并没有清除.DS_Store文件,这可以通过Asepsis有效地完成。无菌将.DS_Stores存储在固定位置,而不是文件夹本身。


我不确定这些建议是否可以解决您的问题,所以请在评论中留意。1.尝试使用TinkerTool bresink.com/osx/TinkerTool.html,然后使用Finder>“不要通过网络连接创建隐藏的.DS_Store文件”。2.尝试使用“秘密系统偏好设置”窗格secrets.blacktree.com并取消选中Finder>在网络上使用.DS_Stores。

@gentlemanhog,我将尝试您的建议。但是,我确实更喜欢“本机” OS X解决方案,而不是第三方应用程序。
CousinCocaine 2014年

@gentlemanhog,很遗憾,您的解决方案在Mavericks中不起作用。
CousinCocaine 2014年

Answers:


31

我承认,我没有注意到该defaults write命令在Mavericks中停止工作。但是,当我进行干净的网络安装时,而不是使用一个衬垫findrm,我使用此方法:

dot_clean .

该manfile解释:

dot_clean -- Merge ._* files with corresponding native files.

我不使用-m标志,但是您可能会发现它对您的情况有所帮助。

-m      Always delete dot underbar files.

这是另一个积极尝试阻止创建.DS_Store文件的人:http ://www.aorensoftware.com/blog/2011/12/24/death-to-ds_store/- 看起来他不希望它们在驱动器上就像他不想他们在网络上一样!


这是工作的正确工具。不幸的是,该解决方案是“后期”安装,需要在安装发生后运行。无菌程序的性能更好(apple.stackexchange.com/a/136558/55028),但它是第三方应用程序,仅适用于.DS_Store文件,并且仅适用于每个装载的所有.DS_Store文件。
CousinCocaine 2014年

12

刚刚尝试过,这确实在Mavericks中起作用(至少用于禁用.DS_Store而不是网络共享):

defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true

您只需要记住还要重新启动Finder:

killall Finder

1
对于Samba驱动器,这在El Capitan上不起作用。.DS_Store文件仍然被创造
塞巴斯蒂安

.DS_Store不是的AppleDouble文件,它们是由Finder中创建的只是“正常”的隐藏文件。因此,您看到的那些.DS_Store文件并不表示是否DSDontWriteNetworkStores有效。
Thomas Tempelmann '16

4

这些._文件是AppleDouble文件,用于存储扩展属性,ACL,文件标志和资源派生之类的元数据。

要删除它们,请运行:

find . -name ._\* -delete

您可以使用来查看文件是否具有扩展属性,ACL或文件标志ls -l@eO。该._文件通常被创建,因为文件的扩展属性。您可以xattr -c用来删除扩展属性或chmod -N删除ACL。cp -Xrsync复制没有扩展属性,ACL,文件标志或资源派生的文件。


我不想删除文件或将其排除在复制之外。我希望不要一开始就创建它们。
CousinCocaine 2014年

2
如果使用Finder,则无法阻止创建它们。
Fyrefly 2014年

@Fyrefly,但您可以在其他地方创建它们。参见无菌apple.stackexchange.com/a/136558/55028。因此,也可以采用“本地”解决方案
CousinCocaine 2014年

3

由于您将不得不在所有可以连接到共享的Mac上禁用隐藏文件的写入,因此更好的选择是在共享而不是客户端上停止此操作。

您所需要做的就是编辑共享配置(例如,在Linux中的/etc/samba/smb.conf中),并将以下选项添加到共享配置中:

veto files = /._*/.DS_Store/ 

现在,没有Mac客户端可以将具有这些模式的任何文件保存到共享中。


1
“否决文件”不会阻止文件的写入,而是会阻止用户查看文件。请访问samba.org
贾斯汀·卡特尔

1
samba可以选择“删除否决文件=是”,它也会删除它们。
rwenz3l

1
不幸的是,delete veto files = yes它不会删除那些点文件,只是确保您可以删除包含该veto files选项从视图中隐藏的文件的文件夹,因此它无法完成OP的操作(对于我来说也是徒劳的)对于)。
xmnboy

2

我还没有尝试过这个自己,并且我意识到OP喜欢本土的解决方案,但尽管如此:

有一个名为Asepsis的应用程序,其工作原理是将这些文件的创建重定向到一个特殊的文件夹,即以一种防止它们出现的方式。


这是完成这项工作的好工具。不幸的是,此解决方案是第三方应用程序,仅适用于.DS_Store文件(不适用于._文件),并且仅适用于每个装载的所有.DS_Store文件。这是一个很好的解决方案,但不是本机文件和非._文件,因此没有任何奖励。对不起
CousinCocaine 2014年

1

这不是本机解决方案,它实际上也不能阻止写入这些文件,但是它会积极追捕它们并在写入后立即将其删除…

蓝色收获

BlueHarvest会自动从USB密钥,SD卡,音乐播放器,文件服务器或任何非Mac磁盘中删除.DS_Store和._ AppleDouble文件。BlueHarvest会在创建或修改这些项目时将其删除,因此您无需担心,您将始终没有元数据。

没有隶属关系,我已经成功使用了几年了。


0

据我所知,您无法阻止将创建这些文件。至少Finder将创建它们。

删除这些文件也无济于事-因为下次您在Mac上访问该卷及其文件夹时,Finder会再次创建它们。

我很惊讶您的Windows同事看到这些文件。我在Mac上使用Mac和Windows的Mac已经工作了很多年,但从未见过这些文件。在Mac和Windows上都没有。

这些文件默认情况下被标记为“隐藏”,如果您将Windows设置为隐藏隐藏的文件和文件夹,则这些文件将不会显示。


我检查了一下,他们确实禁用了“隐藏隐藏文件”。但这并不能阻止它们的创建。我认为有一种方法可以解决此问题,因为OS 10.5中存在默认值,请写com.apple.desktopservices DSntWriteNetworkStores -bool true
CousinCocaine 2014年

如果他们禁用(未选中)“隐藏隐藏文件”,那么这是另一种方法:启用它。:-)正如我所说:据我所知,没有“本机OS X解决方案”解决方案。并且:您链接到“ support.apple.com”的回答,其中说:“在远程文件服务器上禁用.DS_Store文件的创建会导致Finder中发生意外行为”。并且:我不建议安装承诺会阻止它的应用程序。据我所知,这可能非常危险。
2014年

2
“这可能非常危险” :)现在,我真的希望这些文件消失!严重地,.DS_Store文件存储Finder属性,而损坏的DS_Store文件确实可以做奇怪的事情。我不要损坏的DS_Store文件,我不要任何DS_Store文件。我不怕删除它们。回到我的原始问题:如何防止OS X制作这些奇怪的不可见文件?意思是所有._文件和.DS_Store文件。没有其他的。
CousinCocaine 2014年

如果您确认人员已启用(而非禁用)“隐藏隐藏文件”,这对我(可能是您)会有所帮助。而且我可以理解,您不希望创建这些文件,并且不想要本机解决方案,但是如果没有本机解决方案,那么说“但我想要”就无济于事。
马丁

-1

我找到了一种非常简单且免费的方法来删除._文件,尤其是从外部fat32 HD中删除。

启动OnyX(免费软件)。从实用程序中,转到AppleDouble,选择...文件夹。而已!!!


1
OP非常明确地指出,他不需要清理工具,而是一种根本无法写入文件的工具。
Tetsujin 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.