udisksctl:获取循环设备和安装点而不求助于解析本地化输出?

udisksctl:获取循环设备和安装点而不求助于解析本地化输出?

udisksctl是我处理文件系统映像时选择的工具(最近的例子,但我一直在这样做到处都是)。

舞蹈通常看起来像

fallocate -l ${img_size} filesystem.img
mkfs.${fs} filesystem.img

# Set up loop device as regular user
loopback=$(udisksctl loop-setup -b "${img_file}" | sed 's/.* \([^ ]*\)\.$/\1/')

# Mount as regular user
mounted=$(udisksctl mount -b "${loopback}" | sed 's/^.* \([^ ]*\)$/\1/')

# Do the testing/benchmarking/file management
# e.g.:
cp -- "${files[@]}" "${mounted}"

udisksctl坦率地说,我对解析;输出的方式有一种不好的感觉。这些显然是人为的字符串:

Mapped file filesystem.img as /dev/loop0.
Mounted /dev/loop1 at /run/media/marcus/E954-81FB

我认为没有人考虑他们的实际格式“API”。所以,我的脚本将来可能会崩溃! (更不用说如果图像文件名包含换行符,我会招来鼻恶魔。)

udisksctl似乎没有“瓷器”输出选项或类似选项。是否有一种现有方法可以udisksctl通过 udisks2 以用户权限进行环回安装,并具有正确、明确的输出?

相关内容