btrfs sub snap foo bar
foo
创建与subvolume 完全相同的 subvolume 内容bar
,但 中的子卷除外foo
。
我想要的是从输出 ( bar
) 中排除一些常规文件夹,例如node_modules
和tmp
;就像rsync --exclude ...
那样。
有多种方法可以实现这一点,例如:
- 为要排除的每个文件夹创建一个子卷。 (缺点:无法排除自动生成的文件夹,因为它们是作为常规文件夹创建的,例如
node_modules
在本场景中) - 创建一个临时子卷,删除不需要的文件/文件夹(最有希望的方法),然后从中创建最终的子卷。
除了上述之外,我们可以在创建快照时应用编程过滤器吗?
答案1
不,无法在排除文件或目录的情况下创建快照。 BTRFS 维基百科是这样说的:
子体积是喜欢目录 - 它有一个名称,创建时上面没有任何内容,并且可以保存文件和其他目录。每个 Btrfs 文件系统中至少有一个子卷,即顶级子卷。
子卷与目录一样,可以独立于文件系统的其余部分进行安装。它们也是快照的单位:您可以制作单个子卷的原子快照,但不能制作它们的整个树;您无法对小于子卷的任何内容(例如单个目录)创建原子快照。 -https://btrfs.wiki.kernel.org/index.php/FAQ#Subvolumes