rsync 排除文件夹

Rsync Excluding folders

我是 运行 一个 rsync 脚本,我想排除某些文件夹。我知道使用 rsync 你必须创建一个 .txt 文件并在其中添加所有排除项,但我想知道是否可以在脚本中只包含一个全局字符串,其中包含我想要的所有排除项,然后添加它全局进入 rsync 命令?

全局字符串示例

ROOT_EXCLUDE="--exclude=/dev --exclude=/proc --exclude=/sys --exclude=/temp --exclude=/run --exlucde=/mnt --exlcude=/media

Rsync 命令

rsync -au --exclude 'ROOT_EXCLUDE' /Users/Me/Home /Users/me/Backup

查看 /etc/environment 并在此处设置常量。我还没有测试过,但它可能会像你上面显示的那样工作。如果你弄明白了,请更新。

或者,如果您想要一种超快速的 hacky 方法,这也可能有效。创建如下所示的 bash 脚本。它可以实现您最初的目标(除非您将常量存储在 bash 文件中)

echo "dev
proc
sys
temp
run
mnt
media
" >> ~/exclude.txt
rsync -auvr --exclude-from '~/exclude.txt' /Users/Me/Home /Users/me/Backup
rm ~/exclude.txt