# `gdal vsi copy`

Added in version 3.11.

Copy files located on GDAL Virtual System Interface (VSI)

## Synopsis

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

    Copy files 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

    Options:
      -r, --recursive              Copy subdirectories recursively
      --skip-errors                Skip errors

## Description

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

It can copy files and directories between different virtual file systems.

This is the equivalent of the UNIX `cp` command, and `gdal vsi cp` is an alias for `gdal vsi copy`.

### Options

-r, --recursive

  Copy directories recursively.

--skip-errors

  Skip errors that occur while while copying.

## Examples

### Example 1: Copy recursively files from /vsis3/bucket/my_dir to local directory, creating a my_dir directory if it does not exist.

    $ gdal vsi copy -r /vsis3/bucket/my_dir .

### Example 2: Copy recursively files from /vsis3/bucket/my_dir to local directory, without creating a my_dir directory, and with progress bar

    $ gdal vsi copy --progress -r /vsis3/bucket/my_dir/* .