GDAL-VSI-COPY(1)

πŸ’– GDAL-VSI-COPY β€” the girlies are COPYING files πŸ’–

okay so bestie, sit down, hydrate, because this is the gdal-vsi-copy manual page from the GDAL crew (it's giving very much Unix manpage energy, obviously β€” that's literally in the name). ✨

It's all about copying files that live on the GDAL Virtual System Interface (VSI). And yeah, this one's fresh out the box: Added in version 3.11. πŸŽ€


🌸 NAME 🌸

gdal-vsi-copy β€” copy files that are hanging out on the GDAL Virtual System Interface (VSI, for the besties in a hurry).

Added in version 3.11. πŸ’…


✨ 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]
  -q, --quiet                  Quiet mode (no progress bar or warning message) [not available in pipelines]

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

πŸ¦‹ DESCRIPTION πŸ¦‹

So gdal vsi copy copies files and directories that live on the GDAL Virtual File Systems β€” and yeah, that means all the fancy ones: compressed stuff, network-hosted stuff, etc. Think /vsimem, /vsizip, /vsitar, /vsicurl, ... you get it. πŸ’«

And the iconic part? It can copy files and directories between different virtual file systems. Mix and match, bestie. 🫢

It's basically the equivalent of the UNIX cp command, and lowkey the serve doesn't stop there: gdal vsi cp is an alias for gdal vsi copy. Two names, one queen. πŸ‘‘


πŸŽ€ Options πŸŽ€

  • -r, --recursive β€” copy directories recursively, i.e. take the whole family, not just the one file. 🧚
  • --skip-errors β€” skip errors that occur while copying. (The original manpage says "while while" and honestly? slay, we respect the typo, but the vibe is: keep going, don't stop for errors.) πŸ™ˆ

⭐ RETURN STATUS CODE ⭐

Here's the vibe check on exit codes:

  • The program returns status code 0 when it's a success. ate, no crumbs.
  • It returns non-zero when there's an error. πŸ’€
  • But β€” important β€” non-blocking errors emitted as warnings are still considered a successful execution. So don't panic if you see a warning, bestie, it's fine.

🌈 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, without progress bar

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

🫢 AUTHOR 🫢

Even Rouault <even.rouault@spatialys.com> β€” yes, THE Even Rouault. main character energy fr fr. πŸ‘‘


<copyright>1998-2026</copyright> β€” hold it down, king. πŸ’–


and that's the whole page, bestie!! 🌸 this was GDAL manual page GDAL-VSI-COPY(1), dated Aug 18, 2026 β€” go forth and copy things, periodt. πŸ’…βœ¨πŸŽ€

πŸ“¦ where this page comes from