#copy #directory #cp

app cpdir

Command-line utility for copying directory structure between two locations

1 unstable release

0.1.0 Apr 7, 2023

#1383 in Command line utilities

MIT license

154 lines


A utility for copying directory structures between two locations.


This will only copy directories, no files will be moved or created.

Any errors preventing a single directory from being moved only mean that single directory will not be moved. By default, this also means that the exit code from running this application (aside from nested instances) will always be zero. If you want to have the application report a non-zero exit code, use the -E flag.


Command-line utility for copying directory structure between two locations.

Usage: cpdir [OPTIONS] <SOURCE> <DEST>

  <SOURCE>  The directory to walk to determine the structure to be copied to the
  <DEST>    The directory to copy walked paths into

  -d, --depth <DEPTH>      Controls the recursion depth of the directory walking
                           process. The allowed range is 0-255. Setting this to
                           0 will effectively not walk the source directory
                           [default: 255]
  -x, --execute            Controls whether folders should actually be created
                           at the destination. This defaults to false, so this
                           program will run in a "dry-run" mode unless this
                           argument is specified
      --allow-nesting      Whether or not the destination directory is allowed
                           to be a subdirectory of the source. This can have
                           undesired behaviour, as directories within the
                           subdirectory then get copied deeper into the same
  -E, --exit-code-failure  Whether or not a non-zero exit code should be used in
                           the case that any directory is not able to be moved
  -h, --help               Print help
  -V, --version            Print version


~125K SLoC