首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

linux rsync删除文件

rsync 是一个在 Linux 系统中广泛使用的文件同步工具,它能够高效地同步两个目录之间的文件,并且具有多种选项来控制同步的行为。当你使用 rsync 删除文件时,通常是指在同步过程中,将目标目录中源目录不存在的文件删除,以保持两个目录的一致性。

基础概念

rsync 的基本语法如下:

代码语言:txt
复制
rsync [选项] 源目录 目标目录

其中,一些与删除文件相关的选项包括:

  • --delete:删除目标目录中源目录没有的文件。
  • --delete-before:在传输之前进行删除操作。
  • --delete-during:在传输过程中进行删除操作(默认行为)。
  • --delete-delay:在传输完成后,但在退出之前进行删除操作。
  • --delete-after:在传输完成后进行删除操作。

相关优势

  1. 高效同步rsync 使用增量传输算法,只传输文件的差异部分,大大提高了传输效率。
  2. 灵活的删除控制:通过不同的 --delete 选项,可以精确控制何时进行删除操作。
  3. 保持文件权限和时间戳rsync 可以保留文件的权限、时间戳等信息。
  4. 支持断点续传:如果传输中断,可以从上次中断的地方继续传输。

类型与应用场景

rsync 可以用于多种场景:

  • 备份:定期将重要数据备份到远程服务器。
  • 镜像同步:保持本地和远程目录的完全一致。
  • 文件分发:在多台服务器之间同步配置文件或应用程序。

遇到的问题及解决方法

问题:使用 rsync --delete 后,目标目录中的某些文件被意外删除。

原因

  • 可能是因为源目录中的文件被临时移动或删除,导致 rsync 认为这些文件不再存在,从而在目标目录中进行删除。
  • 目标目录中可能存在符号链接,而 rsync 默认情况下会跟随符号链接,这可能导致意外删除。

解决方法

  1. 确保源目录中的文件在同步期间保持稳定。
  2. 使用 --no-links 选项来避免跟随符号链接。
  3. 在执行删除操作前进行备份,以防万一。

示例代码

以下是一个简单的 rsync 命令示例,用于同步本地目录 /source 到远程服务器 user@remotehost:/destination,并启用删除功能:

代码语言:txt
复制
rsync -avz --delete /source/ user@remotehost:/destination/

在这个命令中:

  • -a 表示归档模式,保留文件的所有属性。
  • -v 表示详细输出,显示同步过程中的信息。
  • -z 表示压缩文件数据,在传输过程中进行压缩以提高传输速度。
  • --delete 表示启用删除功能。

注意事项

  • 在使用 --delete 选项时要格外小心,因为它会永久删除目标目录中的文件。
  • 建议在执行同步操作前进行充分的测试,并确保有可靠的备份策略。

通过以上信息,你应该能够理解 rsync 删除文件的基础概念、优势、应用场景,以及如何解决可能遇到的问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Linux Rsync 增量同步与快速删除

/test_envs/trainer/resource /vip_data_center/test_envs/trainer/resource/ --delete: 删除DEST端存在但是SRC端不存在的文件...快速删除大量文件 先建一个空目录,随便位置 mkdir /local/empty_dir 用rsync删除目标目录 rsync --delete-before -avH --progress /local.../empty_dir/ /local/trainer_test/ trainer_test清空之后可以再用rm -rf trainer_test删除 注意不要忘了文件夹最后的/ rsync提供了一些跟删除相关的参数...transfer (default) 选项说明:-a 递归方式传输文件,并保持文件属性 --delete-before 接收者在传输之前进行删除操作 --progress 在传输时显示传输过程 --...rm删除内容时,将目录的每一个条目逐个删除(unlink),需要循环重复操作很多次; rsync删除内容时,建立好新的空目录,替换掉老目录,基本没开销。

3.1K10
  • linux之rsync远程同步文件

    rsync全名Remote Sync,是类unix下数据镜像的备份工具。可以方便的实现本地,远程备份文件,rsync最重要的一点是支持增量备份。 命令语法 rsync [OPTION]......--delete 删除那些 DST 中 SRC 没有的文件 --delete-excluded 同样删除接收端那些被该选项指定排除的文件 --delete-after 传输结束以后再删除 --ignore-errors...及时出现 IO 错误也进行删除 --max-delete=NUM 最多删除 NUM 个文件 --partial 保留那些因故没有完全传输的文件,以是加快随后的再次传输 --force 强制删除目录,即使不为空...@rumenz.com:/opt/rumenz/ 备份结束后自动删除本地文件 > rsync --remove-source-files -zvh jdk.tar.gz root@rumenz.com:...://rumenz.com/rumenbiji/linux-rsync.html

    2.3K20

    linux之rsync远程同步文件

    rsync全名Remote Sync,是类unix下数据镜像的备份工具。可以方便的实现本地,远程备份文件,rsync最重要的一点是支持增量备份。 命令语法 rsync [OPTION]......--delete 删除那些 DST 中 SRC 没有的文件 --delete-excluded 同样删除接收端那些被该选项指定排除的文件 --delete-after 传输结束以后再删除 --ignore-errors...及时出现 IO 错误也进行删除 --max-delete=NUM 最多删除 NUM 个文件 --partial 保留那些因故没有完全传输的文件,以是加快随后的再次传输 --force 强制删除目录,即使不为空...@rumenz.com:/opt/rumenz/ 备份结束后自动删除本地文件 > rsync --remove-source-files -zvh jdk.tar.gz root@rumenz.com:...://rumenz.com/rumenbiji/linux-rsync.html 微信公众号:入门小站

    2.7K00

    Linux文件同步工具之rsync

    通过了解,Linux的同步命令rsync命令可以实现文件同步。这里指的文件同步就是将jenkins工作目录下面的文件同步到我们指定的目录(如我们nginx配置的项目目录)。...并且rsync同步命令具备,高效、带宽消耗低、支持复制链接、设备、属主、属组、权限等。 命令介绍 rsync是远程(或本地)复制和同步文件最常用的命令。...借助rsync命令,你可以跨目录,跨磁盘和跨网络远程与本地数据进行复制和同步。举例来说:在两台Linux主机之间进行数据备份和镜像。...本文介绍在Linux主机上进行远程和本地传输文件的常见用法,不需要root账户也可以允许rsync。 rsync命令特点 1.高效地复制同步数据到对端,或者对端到本地。...--include=PATTERN 指定需要传输的文件模式 --delete 同步时,删除那些DST中有,而SRC没有的文件 --max-size:限定传输文件大小的上限 --dry-run:显示那些文件将被传输

    3.5K10

    linux之rsync远程同步文件

    rsync全名Remote Sync,是类unix下数据镜像的备份工具。可以方便的实现本地,远程备份文件,rsync最重要的一点是支持增量备份。 命令语法 rsync [OPTION]......--delete 删除那些 DST 中 SRC 没有的文件 --delete-excluded 同样删除接收端那些被该选项指定排除的文件 --delete-after 传输结束以后再删除 --ignore-errors...及时出现 IO 错误也进行删除 --max-delete=NUM 最多删除 NUM 个文件 --partial 保留那些因故没有完全传输的文件,以是加快随后的再次传输 --force 强制删除目录,即使不为空...记住如果目标地址没有src目录,rsync 会自动创建该文件夹。...@rumenz.com:/opt/rumenz/ 备份结束后自动删除本地文件 > rsync --remove-source-files -zvh jdk.tar.gz root@rumenz.com

    1.9K10

    Linux下使用rsync同步文件

    遇到的问题是几台游戏服务器,有一台新的服务器之前已经copy(Linux的scp命令)过文件上去,但在测试的过程中发现还是图片无法正常不显示出来,然后用httpwatch去分析请求的资源,发现有一个图片请求的地址是...为了不至于再copy一次,就需要使用文件同步的管理软件了,同事推荐了linux下的rsync,小试了一下,还是很不错的。...shell命令如下: rsync -zvrtopg -progress -e 'ssh -p 端口号' root@192.xx.xx.xx:/文件目录/  本机的目录地址 语法rsync -参数 ‘源文件访问路径...--existing 仅仅更新那些已经存在于DST的文件,而不备份那些新创建的文件 --delete 删除那些DST中SRC没有的文件 --delete-excluded 同样删除接收端那些被该选项指定排除的文件...--delete-after 传输结束以后再删除 --ignore-errors 及时出现IO错误也进行删除 --max-delete=NUM 最多删除NUM个文件 -

    3.5K20

    java删除linux文件_Java删除文件

    //将缓冲文件夹中的文件删除 String s = “D:\\txt\\inBuffer\\”+ fileInfo[0] +”\\” + fileID;//文件的绝对路径 File file = new...; } } ——————————————————————————– Java删除文件注意事项:1.路径上不能出现java认为的非法字符,如“(”,“)”等; 2.确保删除操作之前,文件不再被使用,即文件资源被释放...——————————————————————————– java删除文件与文件夹时,要删除的内容: 1.文件夹里的文件; 2.文件夹里面的子文件夹(有文件); 3.文件夹里面的子文件夹(空文件夹); —...} } // 删除指定文件夹下所有文件 // param path 文件夹完整绝对路径 public static boolean delAllFile(String path) { boolean...temp.isFile()) { temp.delete(); } if (temp.isDirectory()) { delAllFile(path + “/” + tempList[i]);// 先删除文件夹里面的文件

    19.9K20

    Linux下使用rsync实现文件备份

    上一篇文章 Linux下使用ssh密钥实现无交互备份 这篇来说说如何安全的备份,还有一点不同的是上一篇是备份服务器拉取数据,这里要讲的是主服务器如何推送数据实现备份。...一、备份服务器配置rsync文件 vi /etc/rsyncd.conf #工作中指定用户(可以不指定为0) uid = 0 gid = 0 #相当于黑洞.出错定位 use chroot = no #有多少个客户端同时传文件.../run/rsync.lock #日志文件 log file = /var/log/rsyncd.log #模块开始 #模块名称随便起(可以是多个) [backup] #需要备份的目录 path = /...hosts deny = 0.0.0.0/32 #不要动的东西(默认情况) #虚拟用户 auth users = rsync_backup #虚拟用户的密码文件 secrets file = /etc/...rsync.password 二、备份服务器配置虚拟用户的密码文件 [root@slave /]# echo "rsync_backup:123456" >/etc/rsync.password [root

    1.3K90

    Linux删除重复文件

    引言 在Linux系统处理数据时,经常会遇到删除重复文件的问题。例如,在进行图片分类任务时,希望删除训练数据中的重复图片。在Linux系统中,存在一个fdupes命令可以查找并删除重复文件。 2....Fdupes介绍 Fdupes是Adrian Lopez用C语言编写的Linux实用程序,它能够在给定的目录和子目录集中找到重复文件,Fdupes通过比较文件的MD5签名然后进行字节比较来识别重复文件。...安装fdupes 以CentOS系统为例,fdupes的安装命令为: sudo yum install -y fdupes 4. fdupes的使用 删除重复文件,并且不需要询问用户: $ fdupes...-dN [folder_name] 其中,-d参数表示保留一个文件,并删除其它重复文件,-N与-d一起使用,表示保留第一个重复文件并删除其它重复文件,不需要提示用户。.../ https://www.howtoing.com/fdupes-find-and-delete-duplicate-files-in-linux http://www.runoob.com/linux

    13.4K20

    rsync - Linux下进行文件同步命令

    rsync是Linux下进行文件同步到一个命令,可以同步两台计算机到文件与目录,利用查找文件中到不同块以减少数据传输。...[—delete选项、—delete-excluded选项和—delete-after选项] 三个选项都是和“删除”有关的: 1、–delete:如果源端没有此文件,那么目的端也别想拥有,删除之。...3、–delete-after:默认情况下,rsync是先清理目的端的文件再开始数据同步;如果使用此选项,则rsync会先进行数据同步,都完成后再删除那些需要清理的文件。...这个学习可是要小心使用到,一不小心会删除很多东西哦。 可以使用-n选项,它会用受影响的文件列表来警告你,但不会真的去删除,这就让我们有了确认的机会和回旋的余地。...默认情况下,rsync会删除那些传输中断的文件,然后重新传输。但在一些特别情况下,我们不希望重传,而是续传。 我们在使用中,经常会看到有人会使用-P选项,这个选项其实是为了偷懒而设计的。

    8.4K70

    Linux 使用 rsync 文件远程同步操作

    通过了解,Linux的同步命令rsync命令可以实现文件同步。这里指的文件同步就是将jenkins工作目录下面的文件同步到我们指定的目录(如我们nginx配置的项目目录)。...并且rsync同步命令具备,高效、带宽消耗低、支持复制链接、设备、属主、属组、权限等。 命令介绍 rsync是远程(或本地)复制和同步文件最常用的命令。...借助rsync命令,你可以跨目录,跨磁盘和跨网络远程与本地数据进行复制和同步。举例来说:在两台Linux主机之间进行数据备份和镜像。...本文介绍在Linux主机上进行远程和本地传输文件的常见用法,不需要root账户也可以允许rsync。 rsync命令特点 1.高效地复制同步数据到对端,或者对端到本地。...--include=PATTERN 指定需要传输的文件模式 --delete 同步时,删除那些DST中有,而SRC没有的文件 --max-size:限定传输文件大小的上限 --dry-run:显示那些文件将被传输

    2.4K10

    Linux 命令 | rsync

    Linux 命令 rsync 命令解析 rsync命令是一个功能强大的文件传输和同步工具,主要用于在本地和远程主机之间进行文件的备份和同步。...rsync 的一般形式如下: rsync [选项] 源目录 目标目录 源目录是要同步/备份的源文件或目录 目标目录是同步/备份到的目标位置 为方便读者理解,林一写个具体的 demo: 要求:在本地和远程主机之间同步文件夹...Linux 命令 rsync 命令注意事项 读者在使用rsync命令前,请确保源文件和目标文件夹的路径是正确的。需要有足够的权限来读取源文件和写入目标文件夹。...在同步大量文件时,可能需要一些时间,请耐心等待。 rsync可以通过SSH进行安全的远程传输。可以使用--exclude选项排除指定文件或文件夹。 rsync支持通过带宽限制进行传输控制。...可以使用--delete选项删除目标目录中不存在于源目录中的文件。 C++学习路线 C++开发工具 VC6.0、Devc++、VS2019使用教程

    50620

    linux下的删除文件命令,Linux下删除文件命令「建议收藏」

    在linux中删除文件与文件夹我们可以直接使用rm就可以删除了,彻底删除文件或文件夹我们可以使用shred命令来完成,接下来是小编为大家收集的Linux下删除文件命令,希望能帮到大家。...Linux下删除文件命令 linux删除目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,现在使用rm -rf命令即可。...、文件夹 需要提醒的是:使用这个rm -rf的时候一定要格外小心,linux没有回收站的 2 删除文件 de>rm -f fileNamede> 使用 rm -rf 的时候一定要格外小心,linux没有回收站的...删除指定文件之外的其他文件 一、Linux下删除文件和文件夹常用命令如下: 删除文件: rm file 删除文件夹: rm -rf dir 需要注意的是, rmdir 只能够删除 空文件夹。...(keep1 | keep2) #删除keep1和keep2文件之外的所有文件 Linux中彻底删除文件 shred彻底删除文件的方法: $ shred -u file shred会用一些随机内容覆盖文件所在的节点和数据块

    47.2K31

    Linux删除文件过程解析

    概述 ---- 当我们执行rm命令删除一个文件的时候,在操作系统底层究竟会发生些什么事情呢,带着这个疑问,我们在Linux-3.10.104内核下对ext4文件系统下的rm操作进行分析。...源码分析 ---- rm命令是GNU coreutils里的一个命令,在对一个文件进行删除时,它实际上调用了Linux的unlink系统调用,unlink系统调用在内核中的定义如下: SYSCALL_DEFINE1...内核分析的相关书籍,如Robert Love的《Linux内核设计与实现》一书。...由此可知,要删除的文件越大,涉及到的日志更新操作就越频繁,所以直接rm一个大文件时,大量的日志更新操作将会影响到其他进程的I/O性能。...由此可见,在对大文件进行删除时,为了避免对其他I/O密集型应用的影响,不应该直接用rm对其删除,而应该采用其他方法。

    14.9K22

    Linux命令rsync增量同步目录下的文件

    业务场景描述 最近遇到一个问题,需要编写相应的Linux命令,增量同步/var/mysql里的所有文件到另外一个目录/opt/mysql,但是里面相关的日志文件xx.log是不同步的,这个场景,可以使用...rsync来实现 什么是rsync命令?...rsync是英文词语remote sync的缩写,是Linux系统一款比较实用的命令,可以用于文件的增量同步 rsync命令常用参数 rsync有哪些常用参数?...rsync 用法教程 rsync增量同步 针对开头描述的业务场景,可以编写下面的Linux命令实现增量同步 rsync -avz - exclude='*....,-g表示保留组信息,-o表示保留所有者信息,'`-D’表示保留设备和特殊文件 -v·:表示详细模式输出同步过程的信息 -z:表示使用压缩模式传输文件,可以节省网络带宽 --exclude=''*

    2.3K30

    Linux 恢复删除的文件

    Linux 下的命令可谓繁多,但属rm最让人痛并快乐。今天,我分享下针对rm的后悔良药testdisk。...当你在 Linux 系统上删除一个文件时,它不一定(嗯,是不一定~)会永远消失,特别是当你最近才刚刚删除了它的时候。而恢复已删除文件的最佳工具之一testdisk可以帮助你拯救它。...虽然testdisk具有广泛的功能,包括恢复丢失或损坏的分区和使不能启动磁盘可以重新启动,但它也经常被用来恢复被误删的文件。...有趣的是,它不仅是一个 Linux 工具,而且还适用于 MacOS、Solaris 和 Windows。文档可在 https://www.cgsecurity.org 中找到。...安装# debianapt install testdisk# centosyum install testdisk恢复文件cd /mnt/recoverytestdisk /dev/sdb2然后,一路默认选项

    14.2K20
    领券