当前位置:  开发笔记 > 运维 > 正文

在任何linux文件系统上都有类似备用数据流的东西吗?

如何解决《在任何linux文件系统上都有类似备用数据流的东西吗?》经验,为你挑选了3个好方法。

在Windows NTFS上有一个很好但很多未使用的功能,称为"备用数据流"(ADS),我最近在一个业余爱好开发项目中使用过.

在Mac HFS +上,还有一个类似的好但很多未使用的功能称为"命名分叉".

我正在考虑将这个项目移植到Linux,但我不知道linux上的任何Filesystem是否都有这样的功能?



1> hova..:

ADS的问题在于Windows将"丢失"那些ADS流,它将移动到任何非NTFS文件系统.它并不认为这些流是重要的,因此它们通常不会被保留.通过网络共享,烧录到CD,放在USB驱动器等等时,您会发现它们无法访问或消失...

它的长短不一样,除非你对应用程序的关注非常狭窄(总是在NTFS上),否则我会完全避免使用ADS流.


这对于某些用例是可接受的,例如缓存元数据或文件偏移,否则可以更加努力地(重新)生成/计算.

2> Chris Smith..:

Windows和Linux(以及其他操作系统)上都有支持扩展属性(EA)的文件系统.为OS/2 compat添加了Windows支持,并且没有任何文档化的界面,除了通过备份API的hacky方法(这是Cygwin所做的).EA旨在仅存储小值.在Windows上,每个EA都有一个ASCII名称(而几乎所有其他名称都是Unicode),并且文件中所有EA的组合大小不能大于64k.EA不是文件:您无法打开EA的文件句柄并像普通文件一样阅读它.

备用数据流是NTFS提供的单独功能,允许您在文件内提供备用子文件.每个文件都有一个默认的未命名数据流,除非您指定备用数据流,否则该数据流将自动打开.您可以打开ADS的句柄,并使用单个(Unicode)文件名读取(甚至执行)它,就像普通文件一样.ADS可以与任何磁盘文件一样大.

我所知道的Linux上没有与ADS相似的模拟,但如果数据值很小,您可以在Linux端口上使用EA.


默认数据流名为'DATA'
@DanD.,`$ DATA`,而不是`DATA`.

3> Javier..:

某些文件系统支持扩展属性,特别是XFS和(我认为)JFS; 但是尺寸有限(XFS中为64k).Reiser4支持任意大小的叉子; 但我所知道的任何发行版都不支持它.另一种选择是ZFS,同样不是很有用.

最后,使用目录可能更明智.

推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有