在 rsync 中备份特定文件夹的文件

在 rsync 中备份特定文件夹的文件

如何指定在 grsync/rsync 中包含/排除的特定文件?

目前,我使用不同的操作来仅备份指定文件夹中的文件。我现在想一次性完成。我想我应该看看包含/排除选项?

假设我有一个像这样的文件夹结构

/
  /inc1
    /inc1.1
    /...
  /inc2
    /...
  /exc1
  files in root here ... 

我只想备份 inc1 和 inc2 中的文件/文件夹,我该怎么做?

答案1

您可以使用 --include 和 --exclude 选项,或者对于备份过程,您可能需要使用 --include-from,以便您可以在文件中列出要备份的文件夹。

例如,你的文件可能名为 includes.txt 并保存在你的主目录中。它将包含

  inc1/
  inc2/

用于备份主目录中的文件夹 inc1 和 inc2 的 rsync 命令如下

rsync $HOME --include-from=~/includes.txt /home/backup/

rsync 非常灵活,您最好先查阅手册页,如果遇到困难,可以询问更具体的问题。

答案2

要仅包含特定目录,请包含它们及其内容,然后排除*。 如果目录不在根目录,则需要包含指向它们的每个目录。 例如,要仅包含/source/inc1/source/inc2/source/also/included

rsync -a --include='/inc1/***' --include='/inc2/***' \
         --include='/also' --include='/also/included/***' \
         --exclude='*' /source /target

也可以看看常见 rsync 过滤器的快速指南

答案3

也许我遗漏了一些东西,但您只需将这些文件夹指定给 rsync:

rsync -Pav /inc1 /inc2 /path/to/backup/folder/

这将创建:

/path/to/backup/folder/inc1/
/path/to/backup/folder/inc1/inc1.1/
/path/to/backup/folder/inc1/...
/path/to/backup/folder/inc2/
/path/to/backup/folder/inc2/...

相关内容