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) {