# `gdal vsi move`

Added in version 3.11.

Move/rename a file/directory located on GDAL Virtual System Interface (VSI)

## Synopsis

    Usage: gdal vsi move [OPTIONS] <SOURCE> <DESTINATION>

    Move/rename a file/directory located on GDAL Virtual System Interface (VSI).

    Positional arguments:
      --source <SOURCE>            Source file or directory name [required]
      --destination <DESTINATION>  Destination file or directory name [required]

    Common Options:
      -h, --help                   Display help message and exit
      --json-usage                 Display usage as JSON document and exit
      --config <KEY>=<VALUE>       Configuration option [may be repeated]
      --progress                   Display progress bar

## Description

gdal vsi move move files and directories located on GDAL Virtual File Systems (compressed, network hosted, etc...): /vsimem, /vsizip, /vsitar, /vsicurl, ....

If the destination path is an existing directory, the file will be moved to it.

It can move files and directories between different virtual file systems, but this will involve copying and deletion.

Note that for cloud object storage, moving/renaming a directory may involve renaming all files it contains recursively, and is thus not an atomic operation (and could be slow and expensive on directories with many files!)

This is implemented by `VSIMove()`.

This is an analog of the UNIX `mv` command, and `gdal vsi mv` is an alias for `gdal vsi move`.

## Examples

### Example 1: Rename a file within the same virtual file system

    $ gdal vsi move /vsis3/bucket/my.tif /vsis3/bucket/new_name.tif

### Example 2: Move a file into another directory within the same virtual file system

    $ gdal vsi move /vsis3/bucket/my.tif /vsis3/bucket/existing_subdir

### Example 3: Move a directory between two different virtual file systems

    $ gdal vsi move /vsis3/bucket/my_directory /vsigs/bucket/