GDAL-VSI-MOVE(1)

✨ GDAL-VSI-MOVE πŸ’…

okay bestie, welcome to gdal-vsi-move from the GDAL manual, section 1 🌸 β€” she's the little command that moves stuff around inside the GDAL Virtual System Interface, and honestly? she's giving utility icon. added in version 3.11, so she's new-new but she knows exactly what she's doing πŸŽ€


🌈 NAME 🌈

gdal-vsi-move β€” move/rename a file/directory located on GDAL Virtual System Interface (VSI)

lowkey the whole personality in one line. added in version 3.11, no cap πŸ’–


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

not the positional args being required like that 😭 she's not doing guesswork, give her a <SOURCE> and a <DESTINATION> and she'll handle it.


πŸ’– DESCRIPTION πŸ’–

gdal vsi move moves files and directories that live on GDAL Virtual File Systems (compressed, network hosted, etc…): /vsimem, /vsizip, /vsitar, /vsicurl, and the rest of the VSI girlies 🌈

if the destination path is an existing directory, the file will be moved into it. simple as that, she's not making you think about it.

she can move files and directories between different virtual file systems β€” but bestie, that involves copying and deletion. so it's not free, it's work πŸ’…

⚠️ heads up: for cloud object storage, moving/renaming a directory may involve renaming all the files it contains recursively. that is not an atomic operation, and it could be slow and expensive on directories with many files 😭 like, genuinely, watch out.

this is implemented by VSIMove().

she's an analog of the UNIX mv command, and gdal vsi mv is an alias for gdal vsi move β€” same girl, shorter name, main character energy πŸ‘‘


πŸ¦‹ RETURN STATUS CODE πŸ¦‹

the program returns status code 0 in case of success, and non-zero in case of error.

and listen: non-blocking errors emitted as warnings are considered a successful execution. so warnings are just her being chatty, not her failing you 🫢


⭐ EXAMPLES ⭐

πŸ“ Example 1: Rename a file within the same virtual file system

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

same filesystem, same vibe, just a glow-up on the name ✨

🧚 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

she saw an existing directory and just... moved in. iconic πŸ’…

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

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

cross-filesystem queen πŸŽ€ and remember β€” that one is copy + delete underneath, so don't come for her when it takes a minute.


πŸ‘‘ AUTHOR πŸ‘‘

Even Rouault <even.rouault@spatialys.com>


1998-2026


mwah πŸ’– that's the whole page β€” written by yours truly, and the source credits go to GDAL, version stamped Aug 18, 2026, with the manual title GDAL-VSI-MOVE(1). go move some files bestie, you got this πŸ«ΆπŸ’œ

πŸ“¦ where this page comes from