The big challenge here is to actually find the right files to copy, and shudder, delete.  So let us call that step 0.
Let's start with some boiler plate
sourceD=/2018/files/ 
targetD=/backups/2018/files/
And a little assertion, which bails out from the script if $1 does not equate to a directory.
assert_directory() { (cd ${1:?directory name}) || exit; }
step 0: Identify directory:
assert_directory $sourceD
to_be_archived=$(
  # source must be two characters, hence "??"
  # source must a directory, hence trailing "/"
  # set -- sorts its arguments
  # First match must be our source
  set -- $sourceD/??/ &&
    assert_directory "$1"
    echo ${1:?nothing found}
) || exit
This is only a couple of lines of condensed code.  Note that this may
cause trouble if you (accidentally) run this multiple times in a row.
Step 1, Copy files now appears to be the easy part.
scp -r ${to_be_archived:?} user@host:${targetD:?}
This is a simple method for copying files, but also slow and risky.
Lookup rsync over ssh for alternatives.
Step 2, Remove
The rm -fr line will do the job, but I won't include that here.
We are missing an essential step, as we need to make sure that our
files have arrived safely.  Again, rsync has options for that.
In summary:
assert_directory() { (cd ${1:?directory name}) || exit; }
assert_directory $sourceD
to_be_archived=$(
  set -- $sourceD/??/ &&
    assert_directory "$1"
    echo ${1:?nothing found}
) || exit
This will give you the first two-character name directory (if one exists) in sourceD or abort the running script.  It will break if $sourceD contains spaces.