我的根文件系统在 btrfs 分区上。我的/chroot
目录中有许多 btrfs 子卷,这阻止我使用rm -rf /chroot
. 为了删除所有子卷,我尝试/chroot
使用仅列出下面的子卷-o
,手册页说“仅打印指定路径下的子卷”。
# btrfs subvolume list -o /chroot
ID 593 gen 6616 top level 5 path chroot/base-devel/root
ID 594 gen 6618 top level 5 path chroot/multilib-devel/root
ID 595 gen 6620 top level 5 path chroot/base/root
ID 597 gen 6624 top level 5 path chroot/twm/root
ID 599 gen 6628 top level 5 path chroot/lxde/root
ID 601 gen 6655 top level 5 path chroot/wheezy/root
ID 602 gen 6684 top level 5 path chroot/sid/root
ID 603 gen 6862 top level 5 path var/lib/machines
Run Code Online (Sandbox Code Playgroud)
令我惊讶的是,这会返回 /var/lib/macines 中的子卷(我不想删除)。这让我想到了 3 个问题:
什么是-o
选择做什么?
我如何只列出下面的子卷 /chroot
如何删除子卷数量未知的目录?
我正在使用 4.2.5 内核和 btrfs-progs v4.3.1 运行 Arch Linux
小智 2
以下命令删除/chroot
目录中的所有子卷:
ls /chroot | xargs btrfs subvolume delete
如果存在不属于 btrfs 子卷的文件或目录,则会打印错误,但不会删除它们。
(在使用 4.6.0 内核和 btrfs-progs v3.17 的 Debian 上测试)