diff --git a/backend/utils/files/file_op.go b/backend/utils/files/file_op.go index 3f95b4ac8..ca7f91092 100644 --- a/backend/utils/files/file_op.go +++ b/backend/utils/files/file_op.go @@ -299,7 +299,8 @@ func (f FileOp) Cut(oldPaths []string, dst, name string, cover bool) error { if cover { coverFlag = "-f" } - cmdStr := fmt.Sprintf("mv %s %s %s", coverFlag, p, dstPath) + + cmdStr := fmt.Sprintf(`mv %s "%s" "%s"`, coverFlag, p, dstPath) if err := cmd.ExecCmd(cmdStr); err != nil { return err } @@ -362,13 +363,13 @@ func (f FileOp) CopyAndReName(src, dst, name string, cover bool) error { if name != "" && !cover { dstPath = filepath.Join(dst, name) } - return cmd.ExecCmd(fmt.Sprintf("cp -rf %s %s", src, dstPath)) + return cmd.ExecCmd(fmt.Sprintf(`cp -rf "%s" "%s"`, src, dstPath)) } else { dstPath := filepath.Join(dst, name) if cover { dstPath = dst } - return cmd.ExecCmd(fmt.Sprintf("cp -f %s %s", src, dstPath)) + return cmd.ExecCmd(fmt.Sprintf(`cp -f "%s" "%s"`, src, dstPath)) } } @@ -381,11 +382,12 @@ func (f FileOp) CopyDir(src, dst string) error { if err = f.Fs.MkdirAll(dstDir, srcInfo.Mode()); err != nil { return err } - return cmd.ExecCmd(fmt.Sprintf("cp -rf %s %s", src, dst+"/")) + return cmd.ExecCmd(fmt.Sprintf(`cp -rf "%s" "%s"`, src, dst+"/")) } func (f FileOp) CopyFile(src, dst string) error { - return cmd.ExecCmd(fmt.Sprintf("cp -f %s %s", src, dst+"/")) + dst = filepath.Clean(dst) + string(filepath.Separator) + return cmd.ExecCmd(fmt.Sprintf(`cp -f "%s" "%s"`, src, dst+"/")) } func (f FileOp) GetDirSize(path string) (float64, error) {