package move import ( "github.com/ncw/rclone/cmd" "github.com/ncw/rclone/fs" "github.com/spf13/cobra" ) func init() { cmd.Root.AddCommand(commandDefintion) } var commandDefintion = &cobra.Command{ Use: "move source:path dest:path", Short: `Move files from source to dest.`, Long: ` Moves the contents of the source directory to the destination directory. Rclone will error if the source and destination overlap. If no filters are in use and if possible this will server side move ` + "`" + `source:path` + "`" + ` into ` + "`" + `dest:path` + "`" + `. After this ` + "`" + `source:path` + "`" + ` will no longer longer exist. Otherwise for each file in ` + "`" + `source:path` + "`" + ` selected by the filters (if any) this will move it into ` + "`" + `dest:path` + "`" + `. If possible a server side move will be used, otherwise it will copy it (server side if possible) into ` + "`" + `dest:path` + "`" + ` then delete the original (if no errors on copy) in ` + "`" + `source:path` + "`" + `. **Important**: Since this can cause data loss, test first with the --dry-run flag. `, Run: func(command *cobra.Command, args []string) { cmd.CheckArgs(2, 2, command, args) fsrc, fdst := cmd.NewFsSrcDst(args) cmd.Run(true, command, func() error { return fs.MoveDir(fdst, fsrc) }) }, }