Missing directory metainformation in backup with file filter

I have installed Duplicati under RHEL 7.4 and am using it to backup one ssd disk with about 270GB on a NAS storage, The full disk backup and restore of directory substructure is working flawless. It was important for me, to have the right timestamps for all restored files and directories and it was the case.
My problem is, I have configured second backup job, to backup only document files (extensions doc, xls, ppt, pdf) to a cloud destination over WebDAV. The backup has worked also without errors. I have tested restore of a subtree with some subdirectories. The restore works also fine and the timestamp of all files was recreated. I got warning at the restore time, that the subdirectories was created, but the timestamp of the restored directories were not the original one, in fact it was the time of the restore action.
I have looked in the backup and found out, that there are no directories stored in the backup set and therefore, there is no metainformation for the directories.

I have tried to change the backup filter, to include the document directory structure too and finded out, that a normal filter with include of some file extensions didn’t backup the directories.

  1. The first try was with a simple filter “(.xls) || (.doc) || (.ppt) || (.pdf) || (*/)” (from logfile, and log-level ‘Profiling’). The “(*/)” isn’t coming from my config and I have supposed, it is for the directory backup, but there was no one directory in the backup included.
    My filter in the GUI: image

  2. I have tested many different filters (with regular expressions too), but directories would be backed up only if I include in the filter something like “*/”. In this case the filter have two “(*/)” at the end!
    Filter (in logfile): (.xls) || (.doc) || (.ppt) || (.pdf) || (*/) || (*/)
    Filter in the GUI: image

This can be the solution of my problem with the wrong directory timestamps, but with this filter I have other problem - in the backup would be included 6500 directories from the whole ssd disk. The document files are residing in about 50 directories.

Is there some solution for that? I have supposed, when a file is included in a backup, the directory structure for this file will be automatically included too.

Best regards

This is what I personally would expect to happen since Duplicati might have to create the folder (causing OS to set folder create date to be restore time) and restore a file into it (causing OS to set folder modify date to be latest file restore time).

I’m curious, with your “+*/” filter does every level of the folder get the original timestamp or only the “bottom” level?

Hi, with the “+/" filter, every level in the directory structure will be saved with a timestamp.
i.e. (the file.doc is saved because of the filter "


My expectation is, to restore some directory structure (folders, subfolders and files) with exactly the timestamps, they have had at the backup time. This works, if I have had created full backup - in this case the folders are saved in the backup set (are in the duplicati-nnnn.dlist.zip file with a timestamp). The restore of a subset from the full backup recreates the folders and the files with the timestamps that are saved at the backup time.

If i make a partial backup, I don’t see any folder in the dlist file. Therefore there is no chance for the restore process to recreate the original timestamps for the folders. The filenames in the dlist.zip file are stored with a full path and this allows the restore process, to create the right directory structure. But the folder timestamps (metadata) are missing in the backup information.

The same information I can see with “duplicati-cli find …” command - partial backups doesn’t store folder information, full backup stores it.


Thanks for the details!

We could move this topic to the Features category and make it a feature request, but my guess is it wouldn’t be near the top of the to-do list, so it might be a while before it gets addressed.

In the mean time, I’m curious if negating rules might get what you want. For example, include all but exclude anything that does NOT end with .DOC, .XLS, etc.