有没有办法制作如下所示的 btrfs 子卷树?(只有子卷 - 没有常规目录或文件。)
# tree /mnt/1
/mnt/1
??? a
??? snapshot
? ??? a
? ??? subv
??? subv
??? b
Run Code Online (Sandbox Code Playgroud)
此示例是从没有常规目录或文件的“示例”btrfs 创建的。
tree <mountpoint>
显示所有目录和文件,而不仅仅是子卷。使用该-d
选项仅显示目录,这更好,但仍显示非子卷目录。
因此,在已安装的系统上,您将获得:
# tree /
/
??? bin -> usr/bin
??? boot
? ??? grub
? ? ??? fonts
? ? ? ??? unicode.pf2
? ? ??? grub.cfg
? ? ??? grub.cfg.example
? ? ??? grubenv
? ? ??? i386-pc
? ? ? ??? 915resolution.mod
? ? ? ??? acpi.mod
? ? ? ??? adler32.mod
? ? ? ??? affs.mod
... <over 242,000 lines snipped>
Run Code Online (Sandbox Code Playgroud)
请参阅此解决方案。它从命令获取子卷列表btrfs
,仅删除路径列,然后通过 2 个工具:第一个将路径列表转换为分层缩进文本,第二个在缩进位置添加 ascii 艺术树。
btrfs subvol list / | cut -f9 -d\' \' | sed -e \'s/^/ROOT\\//\' | paths2indent | indent2tree
您可以在这里找到这 2 个 perl 脚本:paths2indent和indent2tree
\n子卷列表示例:
\nID 1883 top level 5 path slash\nID 2004 top level 5 path logs\nID 2005 top level 5 path dbase\nID 2006 top level 5 path sdata\nID 2007 top level 5 path users\nID 2937 top level 5 path slash/snaps/by-procedure/quota-yazzy/users\nID 2938 top level 5 path slash/snaps/by-date/2019-11-21_0100/dbase\nID 2939 top level 5 path slash/snaps/by-date/2019-11-21_0100/slash\nID 2940 top level 5 path slash/snaps/by-date/2019-11-21_0100/logs\nID 2941 top level 5 path slash/snaps/by-date/2019-11-21_0100/sdata\nID 3004 top level 5 path slash/snaps/home/2019-12-04_0600\n
Run Code Online (Sandbox Code Playgroud)\n输出示例:
\nROOT\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 dbase\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 slash\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 snaps\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 by-procedure\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 quota\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 users\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 by-date\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 2019-11-21_0100\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 dbase\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 slash\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 sdata\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 logs\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 home\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 2019-12-04_0600\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 users\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 sdata\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 logs\n
Run Code Online (Sandbox Code Playgroud)\n编辑:较新版本的输出格式有所不同,因此cut
如果需要,请更改\的字段编号(-f7
与-f9
)。