The --path option to restore requires passing a path which is listed in the snapshot itself (what restic snapshots print). This does not mean the directory structure within a snapshot.
I’ll try to describe an example: Let’s say there’s a file called test.txt in /srv/data/tmp/work, and this is saved with restic like this:
$ restic backup /srv/data/tmp/work
[...]
processed 1 files, 4 B in 0:00
snapshot e6a5f38f saved
For this snapshot, the path is /srv/data/tmp/work, because it’s absolute restic just records it in the snapshot, as seen here:
$ restic snapshots
ID Date Host Tags Directory
----------------------------------------------------------------------
e6a5f38f 2018-09-02 12:31:42 mopped /srv/data/tmp/work
----------------------------------------------------------------------
1 snapshots
As the path is absolute, restic added all directories as the structure within the snapshot:
$ restic ls -l latest
snapshot e6a5f38f of [/srv/data/tmp/work] filtered by [] at 2018-09-02 12:31:42.322955972 +0200 CEST):
drwxr-xr-x 0 0 0 2018-04-25 13:18:49 /srv
drwxr-xr-x 1000 0 0 2018-04-14 12:54:21 /srv/data
drwxr-xr-x 1000 100 0 2018-09-02 12:30:55 /srv/data/tmp
drwxr-xr-x 1000 100 0 2018-09-02 12:30:59 /srv/data/tmp/work
-rw-r--r-- 1000 100 4 2018-09-02 12:30:59 /srv/data/tmp/work/test.txt
And we can verify that by supplying the path /srv/data/tmp/work as the option to --path (it must match exactly, so no trailing slashes etc) indeed finds the snapshot:
$ restic snapshots --path /srv/data/tmp/work
ID Date Host Tags Directory
----------------------------------------------------------------------
e6a5f38f 2018-09-02 12:31:42 mopped /srv/data/tmp/work
----------------------------------------------------------------------
1 snapshots
You can control how the data structures within the snapshot looks like by using relative paths. For example, you can make the work directory the top-level directory by calling restic like this:
$ cd /srv/data/tmp
$ restic backup work
processed 1 files, 4 B in 0:00
snapshot 91768ea8 saved
$ restic ls -l latest
snapshot 91768ea8 of [/srv/data/tmp/work] filtered by [] at 2018-09-02 12:35:31.176588304 +0200 CEST):
drwxr-xr-x 1000 100 0 2018-09-02 12:30:59 /work
-rw-r--r-- 1000 100 4 2018-09-02 12:30:59 /work/test.txt
In the snapshot, restic will still note that /srv/data/tmp/work has been saved, so it can find this snapshot again the next time it is called:
$ restic snapshots
ID Date Host Tags Directory
----------------------------------------------------------------------
e6a5f38f 2018-09-02 12:31:42 mopped /srv/data/tmp/work
91768ea8 2018-09-02 12:35:31 mopped /srv/data/tmp/work
----------------------------------------------------------------------
2 snapshots
In all cases, the argument to --path must be the path that is listed in the Directory column of restic snapshots.
In conclusion, it’s probably the best to pass the snapshot ID (in the first column above) to restic restore, so you can be sure what’s restored.