使用 rsync 明确备份选定的文件/文件夹

使用 rsync 明确备份选定的文件/文件夹

我想将 $HOME 中的某些特定文件/文件夹备份到外部硬盘上。我使用 rsync,语法如下:

rsync -avh --delete-excluded --exclude-from=.backup.lst $HOME/ BACKUP/

backup.lst 文件包括以下内容:

    # Include
    + /Dev/
    + /Documents/
    + /Music/
    + /Pictures/
    + /.config/openbox/
    + /.config/tint2/
    + /.irssi/
    + /.mplayer/
    + /.backup.lst
    + /.bash_history
    + /.bash_profile
    + /.bashrc
    + /.conkyrc
    + /.fehbg
    + /.FehImage
    + /.htoprc
    + /.inputrc
    + /.rtorrent.rc
    + /.urxvtc.sh
    + /.vimrc
    + /.xinitrc
    + /.Xresources

    # Exclude
    - /*

一切都同步正常,除了.config/openbox/.配置/色调2/

a) 有没有办法可以包含这两个文件夹?

b) 总体而言,上述语法是否正确,可以正确备份这些文件?如果您能提供关于使用 rsync 备份的其他建议,我将不胜感激。

答案1

我自己也尝试过类似的情况。显然,你必须在所有深度中包含父级,并且还要使用- /<deep-parent>/*稍后的排除规则(在所有深度)删除不需要的子级。

# Include 
+ /.mplayer/
+ /.config/
+ /.config/openbox/
+ /.config/tint2/

# Exclude
- /*
- /.config/*

手册页说,如果你不把排除在外,.config/*就不会被考虑.config//*

相关内容