我正在尝试删除磁盘上的子卷(该子卷使用btrfs subvolume delete NAME
运行),但是由于某些原因,它似乎不起作用。
陌生人,它输出的命令 会删除磁盘上的子卷。
我知道流程生成器将varargs用于命令/参数,但是我不确定这里发生了什么,它表示找不到要删除的子卷,但是如果我从konsole运行它,它找到了。
processOP("btrfs", "subvolume", "delete", ROOT_SNAPSHOT_FOLDER + "/*"
)
processOP方法:
public static void processOP(String... commands) throws IOException {
ProcessBuilder builder = new ProcessBuilder(commands);
builder.inheritIO();
//Print out FFMPEG Command
logger.info("COMMAND: " + builder.command().stream().collect(Collectors.joining(" ")));
//Actually do it
Process proc = builder.start();
}
输出:
COMMAND: btrfs subvolume delete /media/sarah/NihilisticAutomaton/Snapshots/*
ERROR: Could not statfs: No such file or directory
但是此命令在konsole上运行,并且我在Snapshots文件夹中放置了一个新的子卷,作为测试将其删除。
编辑0:该程序需要作为根BTW运行。它以root身份运行。
编辑1:我有一种明显的感觉,那就是它将通配符*
解释为原义路径。 ProcessBuilder
不允许这样做吗?