Duplicity backs up my files as duplicity-full.TIMESTAMP.vol*.difftar.gz
chunks where *
is 1,2,3, ... . On the other hand, ~/.cache/duplicity/profile/duplicity-full.TIMESTAMP.manifest
contains volumes and file list:
Hostname striker
Localdir /data/pnlpipe3/ukftractography
Volume 1:
StartingPath .
EndingPath .git/objects/pack 3188
Hash SHA1 d77131425a74f6f10eb5bc89ee4277805fb35e68
Volume 2:
StartingPath .git/objects/pack
EndingPath build/ITK/.git/objects/pack 743
Hash SHA1 a983bb4e0379d6304da7aec9739a609b0704d270
...
...
Filelist 129500
new .git/FETCH_HEAD
new .git/HEAD
new .git/ORIG_HEAD
...
...
But given a file, is there a command in duplicity to find out which volume contains that file? It is important for retrieving from glacier deep archive. According to your man page, the user must manually migrate the storage type from glacier to standard before being able to retrieve a file. If I do not know which of my volumes contains my file, I won't know which volume to migrate. Migration has to be done by hand clicking through the web interface. So migrating all volumes is not an option either.
There is no command to find out which volume contains a file. It is derived internally from the manifest by being between StartingPath and EndingPath of a volume. However, even if you have that info, duplicity would still need to work it's way through the incremental files to restore the file entirely.
So, bottom line is that you need to de-glacier the backup and let duplicity reassemble the file to its former state. See here for an answer on incremental backup that shows how duplicity stores backups.
The original boto+s3 backend would de-glacier the files, but it's been replaced by boto3+s3 which does not have that capability, yet. We are looking for volunteers to port that functionality over.