我想从具有以下服务器进行部分备份同步。
我的排除文件看起来像这样
bin/
boot/
dev/
initrd.img
initrd.img.old
lib/
我现在的问题是,每个文件夹中的每个 lib、bin 等文件夹都会被跳过,但我只想跳过根文件系统上的 /lib、/boot ... 文件夹
如何处理?
答案1
全局排除路径锚定在传输的根目录,因此对特定的 rsync 调用很敏感,例如,如果指定了尾部斜杠。如果传输的根目录是文件系统根目录,那么要排除,/lib/
我们需要使用此排除模式,而不是lib/
。man rsync
有关详细信息,请参阅。考虑这个例子:
$ find .
.
./root1
./root1/lib
./root1/lib/file
./root1/home
./root1/home/lib
./root1/home/lib/file
./root2
./exclude
$ cat exclude
/lib/
$ rsync -aPn root1/ root2/
sending incremental file list
./
home/
home/lib/
home/lib/file
lib/
lib/file
$ rsync -aPn --exclude-from=exclude root1/ root2/
sending incremental file list
./
home/
home/lib/
home/lib/file