0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何在Linux使用rsync命令排除文件和目录

CHANBAEK 来源:myfreax 作者:myfreax 2022-12-23 16:49 次阅读

Rsync是一种快速同步的命令行程序,用于在两个计算机之间同步文件和文件夹。借助Rsync,您可以镜像数据,创建增量备份。

在系统之间复制文件或者复制数据时,您可能要根据它们的名称或位置排除一个或多个文件或目录。

在本教程中,我们将向您展示如何使用rsync排除文件和目录。并介绍--exclude-from,--exclude,--include选项的用法。

并举例说明它们之间区别于关系,比如排除指定文件,排除指定目录,排除多个文件或目录,根据模式排除多个文件或目录,还有选项之间的优先级等。

开始之前

您应该了解如何使用rsync。在下面的示例中,我们将rsync命令的-a选项一起使用。

rsync命令将会递归同步目录,传输特殊设备和块设备,并保留符号链接,修改时间,组,所有权和权限。排除文件或目录时,需要使用它们到源目录的相对路径。

有两个选项可以指定要排除的文件和目录,当使用rsync命令的--exclude选项时直接指定要排除的目录与文件。

当使用--exclude-from选项时,这将从文件读入要排除的文件与目录。使用那个选项具体取决于你的喜好。

排除文件

要排除指定文件,请将文件的相对于源目录的路径传递给--exclude选项。

例如参数--exclude 'file.txt' src_directory/将会排除src_directory/file.txt文件。

rsync -a --exclude 'file.txt' src_directory/ dst_directory/

排除目录

排除指定目录与排除文件相同,只需将目录相对源目录的路径传递给--exclude选项。

如果要排除目录内容,但不排除目录本身,请使用dir1/*而不是dir1

rsync -a --exclude 'dir1' src_directory/ dst_directory/

rsync -a --exclude 'dir1/*' src_directory/ dst_directory/

排除多个文件目录

要排除多个文件或目录,只需指定多个--exclude选项。如果您想使用单个--exclude选项,则可以用大括号{}列出要排除的文件和目录并用逗号分隔。

rsync -a --exclude 'file1.txt' --exclude 'dir1/*' --exclude 'dir2' src_directory/ dst_directory/
rsync -a --exclude={'file1.txt','dir1/*','dir2'} src_directory/ dst_directory/

如果要排除的文件或目录数量很大,则可以在一个文件中列出要排除的文件与目录,然后将文件传递给--exclude-from选项。

rsync -a --exclude-from='exclude-file.txt' src_directory/ dst_directory/
file1.txt
dir1/*
dir2

exclude-file.txt

根据模式排除多个文件或目录

借助rsync,您还可以根据与文件或目录名称匹配的模式排除文件与目录。例如参数--exclude '.jpg'排除所有.jpg文件。

rsync -a --exclude '*.jpg*' src_directory/ dst_directory/

假设您要排除其它的文件和目录,但以.jpg结尾的文件除外。一种选择是指定参数--include='.jpg' --exclude='*'

在使用多个include/exclude选项时,rsync命令将应用第一个匹配规则。

例如参数--include='.jpg' --include='/' --exclude='*'--include='/'不会被rsync应用

rsync -a -m --include='*.jpg' --include='*/' --exclude='*' src_directory/ dst_directory/

另一个选择是将Find命令的标准输出通过管道传递给rsync命令。-printf %P\\\\0\\\\n-从文件路径中删除src_directory/

--files-from=-表示仅包含来自标准输入的文件,也就是从find命令传递的文件。-表示标准输入。

find src_directory/ -name "*.jpg" -printf %P\\\\0\\\\n | rsync -a --files-from=- src_directory/ dst_directory/

结论

至此,您学习如何在Linux使用rsync命令排除文件和目录。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11030

    浏览量

    207251
  • 计算机
    +关注

    关注

    19

    文章

    6862

    浏览量

    85740
  • 命令
    +关注

    关注

    5

    文章

    638

    浏览量

    21873
收藏 人收藏

    评论

    相关推荐

    何在Linux使用rm删除文件目录

    rm命令用于删除文件目录。它是每个Linux用户都应该熟悉的基本命令之一。
    发表于 12-08 16:49 2363次阅读

    Linux文件的复制、删除和移动命令

    Linux文件的复制、删除和移动命令 Linux文件的复制、删除和移动命令  cp
    发表于 01-18 12:45 1216次阅读

    Linux目录的创建与删除命令

    Linux目录的创建与删除命令 Linux目录的创建与删除命令  mkdir
    发表于 01-18 12:46 1274次阅读

    Linux改变文件目录的访问权限命令

    Linux改变文件目录的访问权限命令 Linux改变文件
    发表于 01-18 12:46 1152次阅读

    何在 Linux 中不使用 CD 命令进入目录/文件夹?

    众所周知,如果没有 cd 命令,我们无法 Linux 中切换目录。这个没错,但我们有一个名为 shopt 的 Linux 内置命令能帮助我们
    的头像 发表于 04-16 11:40 5729次阅读

    何在Linux使用Rsync命令复制和同步文件目录

    Rsync用于在两个远程计算机之间同步文件文件夹。它仅通过传输源和目标之间的差异来提供快速的增量文件传输。
    的头像 发表于 12-07 09:47 1.1w次阅读

    如何使用cp和rsync命令复制文件目录

    复制文件目录是在使用命令行时最常见的任务之一。在Linux,有两个命令用于复制文件cp和
    的头像 发表于 12-07 17:39 6363次阅读

    何在Linux使用wc命令统计目录文件

    尽管不是很经常需要知道,但有时您需要找出指定目录中有多少个文件。例如,Linux系统inodes用完,则需要查找哪个目录包含成千上万个文件
    的头像 发表于 12-09 16:48 1593次阅读

    何在Linux使用du命令统计目录文件的大小

    du命令是`disk usage`的缩写,打印文件目录使用的磁盘空间量估算。这对于查找占用大量磁盘空间的文件目录非常有用。
    的头像 发表于 01-04 17:25 5371次阅读

    Linux文件目录快速自动跳转命令

    那些主要通过控制台/终端使用 Linux 命令行的 Linux 用户应该感受到了 Linux 的真正力量。然而,对于新手来说,导航 Linux
    的头像 发表于 05-06 10:16 741次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>文件</b><b class='flag-5'>目录</b>快速自动跳转<b class='flag-5'>命令</b>

    使用SCP和RsyncLinux中传输文件

    Linux 中,有时需要将文件从一台计算机传输到另一台计算机。为了完成这个任务,有两个主要的工具可以使用:SCP 和 Rsync。本文将介绍如何使用这两个工具在 Linux 中传输
    的头像 发表于 05-12 14:32 796次阅读

    恒讯科技分析:如何在Linux上使用rm命令删除文件目录

    本指南展示了如何在Linux中使用rm命令行删除文件目录和其他内容?
    的头像 发表于 06-09 17:02 960次阅读

    恒讯科技分析:如何使用cp命令Linux中复制目录

    复制目录Linux中的一项基本任务,它允许我们复制目录、创建备份或在不同位置之间传输数据。在Linux中复制文件
    的头像 发表于 06-26 17:14 540次阅读

    linux中查找文件命令

    Linux中,可以使用以下命令来查找文件: find 命令:可以在指定目录及其子目录中查找
    的头像 发表于 11-08 14:24 787次阅读

    linux删除文件命令rm

    Linux系统中,可以使用rm命令来删除文件目录。该命令的功能是删除一个目录中的一个或多个
    的头像 发表于 11-13 16:42 524次阅读