if File.exist?(destination)
      warn("skipping rename of #{sh_escape(source)} to #{sh_escape(destination)} because it would overwrite")
    else
      log("rename #{sh_escape(source)} #{sh_escape(destination)}")
      FileUtils.mv(source, destination, **@file_options)