在 GNU/Linux 中,如何区分目录和 btrfs 子卷的最佳方法是什么?
我知道他们应该看起来一样,这很酷。但是出于维护目的,当我查看目录时,我想知道它是否只是一个目录,或者它是否是一个子卷。 (就此而言,最好知道它是否已安装,如果是,如何安装以及从何处安装。)
目的:我想修改我的子卷的结构,例如建议here。我需要一种方法来查看我在做什么,以便检查我在做什么。谢谢。:-)
我看过的:
输出ls -d或tree -d显示文件夹,但不区分目录和btrfs subvolumes。使用ls -l它们实际上看起来相同。
即使ls --classify并且ls --file-type似乎也没有澄清这种区别。
可能的解决方案:
我发现我可以检查一个文件夹的 inode 编号,如果它是256,那就说明它是一个子卷。(参考1、2、3)
那么使用 inode=256 是区分目录和子卷的最佳启发式方法吗? (我假设在某些底层文件系统中,inode 可能是 =256 的另一个原因。因此,要进行明确检查,您还必须确保有问题的目录是 btrfs 文件系统的一部分。 )
另一种方法可能是通过命令btrfs subversion list .然后解析输出。您必须添加到 thismount | grep /\或类似的东西来处理 btrfs 磁盘、磁盘、分区或分区的根挂载,视情况而定。
未来: 我认为如果有一些新选项ls可以提供有关子卷和挂载点的信息,可能采用类似于软链接显示方式的格式,即
$ ls --show-mounts …Run Code Online (Sandbox Code Playgroud)