考虑以下示例:
/source
/source/folder1
/source/folder2
/source/folder3
/destination
/destination/folder2
/destination/folder3
/destination/folder3/mytestfolder1
/destination/folder4
/destination/folder4/mytestfolder1
/destination/folder4/mytestfolder2
Run Code Online (Sandbox Code Playgroud)
我想将源同步到目标,但必须忽略“/destination/folder4/mytestfolder1”。
我尝试使用 exclude 参数
rsync -av --delete --progress --exclude "mytestfolder1" /source/ /destination/
Run Code Online (Sandbox Code Playgroud)
但这会忽略所有名为“mytestfolder1”的文件夹。
当我提供完整路径时,没有任何内容被忽略,因为 rsync 似乎认为路径在源中而不是在目标中。
rsync -av --delete --progress --exclude "/destination/folder4/mytestfolder1" /source/ /destination/
rsync -av --delete --progress --exclude "destination/folder4/mytestfolder1" /source/ /destination/
Run Code Online (Sandbox Code Playgroud)
我在网上搜索过,但没有找到任何有用的东西。
谢谢您的帮助。:)
Gil*_*il' 10
如果您在过滤器中使用绝对路径(包括/排除),它会从同步的根开始解释。您不是排除源中的目录,也不是排除目标中的目录,而是排除要同步的树中的目录。
因此:
rsync -av --delete --progress --exclude " /folder4/mytestfolder1 " /source/ /destination/
归档时间: |
|
查看次数: |
7822 次 |
最近记录: |