CmdBtrfsSubvolumeList::CmdBtrfsSubvolumeList(const string& btrfs_bin, const Shell& shell, const string& mount_point)
{
- SystemCmd::Args cmd_args = { btrfs_bin, "subvolume", "list", "-a", "-puqR", mount_point };
+ SystemCmd::Args cmd_args = { btrfs_bin, "subvolume", "list", "-a", "-puqR", "--", mount_point };
SystemCmd cmd(shellify(shell, cmd_args));
if (cmd.retcode() != 0)
CmdBtrfsSubvolumeShow::CmdBtrfsSubvolumeShow(const string& btrfs_bin, const Shell& shell, const string& mount_point)
{
- SystemCmd::Args cmd_args = { btrfs_bin, "subvolume", "show", mount_point };
+ SystemCmd::Args cmd_args = { btrfs_bin, "subvolume", "show", "--", mount_point };
SystemCmd cmd(shellify(shell, cmd_args));
if (cmd.retcode() != 0)
// Create directory on target.
- SystemCmd::Args cmd1_args = { MKDIR_BIN, backup_config.target_path + "/" + to_string(num) };
+ SystemCmd::Args cmd1_args = { MKDIR_BIN, "--", backup_config.target_path + "/" + num_string };
SystemCmd cmd1(shellify(backup_config.get_target_shell(), cmd1_args));
if (cmd1.retcode() != 0)
{
{
case BackupConfig::TargetMode::LOCAL:
{
- SystemCmd::Args cmd2_args = { CP_BIN, backup_config.source_path + "/" SNAPSHOTS_NAME "/" +
- to_string(num) + "/info.xml", backup_config.target_path + "/" + to_string(num) + "/" };
+ SystemCmd::Args cmd2_args = { CP_BIN, "--", backup_config.source_path + "/" SNAPSHOTS_NAME "/" +
+ num_string + "/info.xml", backup_config.target_path + "/" + num_string + "/" };
SystemCmd cmd2(shellify(backup_config.get_target_shell(), cmd2_args));
if (cmd2.retcode() != 0)
{
if (it1 != the_big_things.end())
cmd3a_args << "-p" << backup_config.source_path + "/" SNAPSHOTS_NAME "/" +
to_string(it1->num) + "/" SNAPSHOT_NAME;
- cmd3a_args << backup_config.source_path + "/" SNAPSHOTS_NAME "/" + to_string(num) + "/" SNAPSHOT_NAME;
+ cmd3a_args << "--" << backup_config.source_path + "/" SNAPSHOTS_NAME "/" + num_string + "/" SNAPSHOT_NAME;
- SystemCmd::Args cmd3b_args = { BTRFS_BIN, "receive", backup_config.target_path + "/" + to_string(num) };
+ SystemCmd::Args cmd3b_args = { BTRFS_BIN, "receive", "--", backup_config.target_path + "/" + num_string };
y2deb("source: " << cmd3a_args.get_values());
y2deb("target: " << cmd3b_args.get_values());
if (target_state == TargetState::MISSING)
SN_THROW(Exception(_("Snapshot not on target.")));
+ const string num_string = to_string(num);
+
// Delete snapshot on target.
- SystemCmd::Args cmd1_args = { BTRFS_BIN, "subvolume", "delete", backup_config.target_path + "/" +
- to_string(num) + "/" SNAPSHOT_NAME };
+ SystemCmd::Args cmd1_args = { BTRFS_BIN, "subvolume", "delete", "--", backup_config.target_path + "/" +
+ num_string + "/" SNAPSHOT_NAME };
SystemCmd cmd1(shellify(backup_config.get_target_shell(), cmd1_args));
if (cmd1.retcode() != 0)
{
// Remove info.xml on target.
- SystemCmd::Args cmd2_args = { RM_BIN, backup_config.target_path + "/" + to_string(num) + "/info.xml" };
+ SystemCmd::Args cmd2_args = { RM_BIN, "--", backup_config.target_path + "/" + num_string + "/info.xml" };
SystemCmd cmd2(shellify(backup_config.get_target_shell(), cmd2_args));
if (cmd2.retcode() != 0)
{
// Remove directory on target.
- SystemCmd::Args cmd3_args = { RMDIR_BIN, backup_config.target_path + "/" + to_string(num) };
+ SystemCmd::Args cmd3_args = { RMDIR_BIN, "--", backup_config.target_path + "/" + num_string };
SystemCmd cmd3(shellify(backup_config.get_target_shell(), cmd3_args));
if (cmd3.retcode() != 0)
{