我想将 $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/
/*