首页 > 系统相关 >在Linux中,rsync同步时,如何删除目标数据多出来的数据,即源上不存在,但目标却存在的文件或者目录?

在Linux中,rsync同步时,如何删除目标数据多出来的数据,即源上不存在,但目标却存在的文件或者目录?

时间:2024-07-05 18:09:45浏览次数:20  
标签:文件 rsync 删除 -- 即源 Linux directory delete

在Linux中,rsync命令是一个非常强大且灵活的工具,用于文件和目录的同步。当使用rsync进行同步时,如果希望删除目标目录中那些不再存在于源目录中的文件或目录,你可以使用--delete选项。

下面是一些关于如何使用--delete选项的详细说明:

1. 使用--delete选项

当你在rsync命令中加入--delete选项时,它会在同步完成后检查目标目录,并删除那些在源目录中没有对应文件或目录的条目。这有助于保持目标目录与源目录的一致性。

2. 基本语法
rsync [options] source-directory/ target-directory/
3. 添加--delete选项
rsync -av --delete source-directory/ target-directory/

这里:

  • -a 表示归档模式,它保留符号链接、文件权限、属主、属组等属性。
  • -v 是详细模式,它会显示详细的同步过程。
  • --delete 指定删除目标目录中多余的文件。
4. 注意事项
  1. 安全性:使用--delete时要小心,因为它可能会永久删除文件,如果没有备份,这些文件将无法恢复。最好先测试同步,确认无误后再执行删除操作。

  2. 干运行模式:在实际执行之前,可以使用--dry-run选项来预览rsync将会做什么,而不实际执行任何更改。

    rsync -avn --delete source-directory/ target-directory/
    
  3. 排除某些文件:如果你不想删除特定的文件或目录,可以使用--exclude选项来指定。

    rsync -av --delete --exclude='*.log' source-directory/ target-directory/
    
  4. 递归删除:默认情况下,rsync会递归地处理目录。确保你想要递归删除所有子目录中的额外文件。

  5. 性能考虑:在处理大量文件时,--delete可能会消耗较多资源和时间。可以考虑使用--delete-after选项,在同步完成后再删除,这样可以避免在同步过程中删除文件的开销。

  6. 远程同步:如果目标或源是远程主机上的目录,你需要使用正确的远程shell程序(如ssh),并且指定主机和路径。

    rsync -avz --delete user@remote-host:/path/to/source/ /local/path/to/target/
    

综上所述,请根据你的具体需求调整上述命令和选项。在生产环境中使用--delete前,务必确保你理解其行为并采取适当的预防措施。

标签:文件,rsync,删除,--,即源,Linux,directory,delete
From: https://www.cnblogs.com/huangjiabobk/p/18286374

相关文章

  • 在Linux中,如何给最小化安装系统,进行基础优化?
    在Linux中,尤其是对于最小化安装的系统,进行基础优化可以显著提高系统的性能、稳定性和安全性。以下是一些针对最小化安装的Linux系统进行基础优化的步骤:1.更新系统首先,确保你的系统是最新的,这可以修复已知的安全漏洞和bug。使用以下命令进行更新:#对于基于Debian的系统(如Ubuntu......
  • 【linux学习---1】点亮一个LED是多么的困难!!!
    文章目录1、原理图找对应引脚2、IO复用3、IO配置4、GPIO配置5、GPIO时钟使能6、总结7、编程8、编译9、链接10、格式转换11、反汇编(查看用)12、使用Makefile操作13、代码烧写14、代码验证1、原理图找对应引脚从上图可以看出,蜂鸣器接到了BEEP上,BEEP就是GPIO5......
  • Linux下R安装配置以及工具包安装方式
    安装R1.下载安装R#/home/wangwz/packages/R/R-4.3.1下载安装R4.3.1wgethttp://mirrors.ustc.edu.cn/CRAN/src/base/R-4/R-4.3.1.tar.gztar-zxvfR-4.3.1.tar.gzcdR-4.3.1#注:R-4.0以上在configure时,需要增加一个--with-pcre1参数。./configure--with-readline......
  • linux部署Hugegraph
    HugeGraph是一款易用、高效、通用的开源图数据库系统(GraphDatabase)。一、基本概述功能特性:HugeGraph实现了ApacheTinkerPop3框架,并完全兼容Gremlin查询语言,具备完善的工具链组件,助力用户轻松构建基于图数据库之上的应用和产品。它支持百亿以上的顶点和边快速导入,并提供毫秒级......
  • Linux 运行时调用动态链接库的方法
    项目场景:Linux动态链接库调用自定义的动态链接库动态链接库:(1)编写.c和.h文件(2)将.c文件转成.o文件gcc-c*.c-fPIC(3)将.o文件转成动态库文件lib库名.sogcc-shared-olib库......
  • 30个Linux运维面试题,面试一线大厂必备!
    在本文中,我们将讨论30个Linux系统管理员面试问题以及经验丰富的专业人士的答案。(1)为什么需要LVM?LVM(Logicalvolumemanagement)推荐使用LVM管理linux服务器上的磁盘或存储,可以在线调整LVM分区的大小,而不用停止服务器。(2)如何检查内存和CPU统计信息?使......
  • Linux 交叉编译(toolchain) ARM aarch64版 libcurl.so 库
    前言全局说明curl是用来访问网络,可以上传下载数据一、说明系统环境:ubunt18.04二、官网下载源码:2.1最新版本https://curl.haxx.se/download.htmlhttps://github.com/curl/curl/releases2.2历史版本https://curl.se/download/2.3变更日志https://curl.se/chan......
  • 韦东山IMX6ULL Linux开发板基于Buildroot系统QT应用环境配置开发运行
    @目录一.编译系统1.设置交叉编译工具链2.编译系统二.QT下载1.安装Qtcreator2.创建第一个程序3.配置QtCreator开发环境4.移植QT程序到开发板一.编译系统1.设置交叉编译工具链exportARCH=armexportCROSS_COMPILE=arm-buildroot-linux-gnueabihf-exportPATH=$PATH:/hom......
  • 大模型Linux本地化[离线]部署(以DB-GPT为例)
    DB-GPT本地化[离线]部署由于Python相关依赖包的获取极度依赖pip,而Miniconda支持环境隔离和环境打包,所以离线部署本质就是比在线部署多一步环境打包,环境搬迁。所以本篇文章一样适用于在线部署,以CentOS7为例。资源获取DB-GPT官方说明文档DB-GPT源码下载地址Nvidia驱动......
  • linux部署cassandra
    Cassandra数据库是一个高度可扩展、分布式的NoSQL数据库系统,最初由Facebook开发,用于处理大规模数据集并提供高可用性和高性能。随着其开源和广泛应用,Cassandra已经成为Apache软件基金会的一个顶级项目。以下是关于Cassandra数据库的详细介绍:一、基本概述类型:Cassandra是一个开......