Linux Rsync排除文件,目录和文件夹示例

本文详细介绍了Rsync工具的排除功能,包括如何排除特定目录、多个具有特定模式的目录、特定文件、相对路径、特定文件类型以及同时排除多个文件和目录。通过示例展示了如`--exclude`选项的使用,帮助用户更灵活地进行备份和克隆操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Rsync is very popular and powerful tool used for backup and clone operations. Rsync can work in localhost or remote hosts. This makes rsync very flexible. We have all ready provided some introduction in the following tutorial.

Rsync是非常流行且功能强大的工具,用于备份和克隆操作。 Rsync可以在localhost或远程主机上工作。 这使rsync非常灵活。 我们都准备在以下教程中提供一些介绍。

Rsync Command Tutorial With Examples

Rsync命令教程与示例

In this tutorial we will look exclude operations in detail. Exclude feature provides a lot of different use cases. We will look most useful of them.

在本教程中,我们将详细介绍排除操作。 排除功能提供了许多不同的用例。 我们将在其中找到最有用的。

排除特定目录 (Exclude Specific Directory)

One of the most useful use case for exclude feature is excluding given directories. In this example we will exclude directories those names starts with vms .

排除功能最有用的用例之一是排除给定目录。 在此示例中,我们将排除以vms开头的目录。

$ rsync --exclude 'vms' /home/ismail/Downloads/ /home/ismail/Public/
Exclude Specific Directory
Exclude Specific Directory
排除特定目录

排除具有特定模式的多个目录(Exclude Multiple Directories with Specific Pattern)

In previous example we have provided only one directory for exclude. We can also provide multiple directories for exclude. We will use wildcard. We will also use wildcard * to complete vms directory name.

在前面的示例中,我们仅提供了一个要排除的目录。 我们还可以提供多个排除目录。 我们将使用通配符。 我们还将使用通配符*来完成vms目录名。

$ rsync --exclude 'vms*' /home/ismail/Downloads/ /home/ismail/Public/

排除特定文件 (Exclude Specific File)

We can exclude specific file by providing its relative path. In this example we will exclude file named file1 .

我们可以通过提供其相对路径来排除特定文件。 在此示例中,我们将排除名为file1

$ rsync --exclude '/home/ismail/Downloads/file1' Downloads/ Public/

排除相对路径 (Exclude Relative Path)

Like previous example we will exlude given relative path completely. In this example we will exclude path /home/ismail/Downloads/vms from sync operation.

像前面的示例一样,我们将完全排除给定的相对路径。 在此示例中,我们将从同步操作中排除路径/home/ismail/Downloads/vms

$ rsync --exclude '/home/ismail/Downloads/vms' Downloads/ Public/

排除特定文件类型 (Exclude Specific File Type)

We can also specify the file type or extension we want to exclude from sync operation. We will provide the exclude file name like *.txt which means exclude txt extension files.

我们还可以指定要从同步操作中排除的文件类型或扩展名。 我们将提供排除文件名,例如*.txt ,这意味着排除txt扩展名文件。

$ rsync --exclude '*.txt' Downloads/ Public/

同时排除多个文件和目录 (Exclude Multiple Files and Directories At The Same Time)

Up to now we have used only single exclude option. What will be if we want to exclude multiple files or directories. Actually we can use multiple exclude options to exclude multiple files and directories. In this example we will exclude vms directories and *.tmp temp files.

到目前为止,我们仅使用了单个exclude选项。 如果我们要排除多个文件或目录,该怎么办。 实际上,我们可以使用多个exclude选项来排除多个文件和目录。 在此示例中,我们将排除vms目录和*.tmp临时文件。

$ rsync --exclude '*.tmp' --exclude 'vms' Downloads/ Public/
LEARN MORE  Ultimate Backup Tools And Utilities List
了解更多Ultimate Backup Tools and Utilities列表

翻译自: https://www.poftut.com/linux-rsync-exclude-filedirectory-folder-examples/

<think>好的,我现在需要帮助用户了解如何在Linux中复制文件夹到其他目录。用户之前询问过关于Nginx的错误,现在转向基础的文件操作,可能是个新手或者需要复习基础知识。我得确保回答清晰易懂,结构合理,符合用户之前提到的格式要求。 首先,用户的问题是关于复制文件夹,这涉及使用cp命令。我需要先介绍基本命令,再逐步深入选项,比如递归复制、保留属性等。可能还需要提到不同情况下的用法,比如覆盖提示、保留符号链接等。 用户可能的需求是什么?他们可能只是想复制文件夹,但不知道需要加-r选项,或者遇到权限问题。所以需要强调递归复制的重要性,以及如何处理权限保留文件属性。此外,用户可能对目标路径存在疑问,比如如何指定绝对路径或相对路径,是否需要目标目录存在,或者如何重命名文件夹。 还要考虑用户是否在使用sudo,特别是当目标目录需要权限时。可能需要提醒用户注意权限问题,使用sudo命令。另外,用户可能想了解如何显示进度,或者如何避免覆盖已有文件,这些可以通过不同的选项来实现,比如rsync或者cp的-i选项。 需要检查是否有常见的错误,比如忘记加-r导致复制失败,或者路径写错。同时,可能需要比较cprsync的区别,给用户更多选择。最后,总结不同方法的适用场景,帮助用户根据需求选择合适的方式。 确保步骤清晰,每个例子都有说明,使用代码块展示命令,并解释每个参数的作用。避免使用过于专业的术语,保持语言简洁。另外,用户之前的问题中提到了系统级指令,但这次是用户可见的操作,所以不需要涉及系统级内容,保持回答在用户操作层面。</think>在Linux中复制文件夹到其他目录,主要通过`cp`命令实现,但需添加**递归复制参数**(`-r`或`-R`),否则会提示“省略目录”错误。以下是详细操作方法常见场景: --- ### **1. 基础命令:递归复制文件夹** ```bash cp -r 源文件夹路径 目标目录路径 ``` - **参数说明**: - `-r` 或 `-R`:递归复制目录及其子内容(必选)。 - `-v`:显示复制过程(可选,用于调试)。 - `-p`:保留文件属性(如时间戳、权限等,可选)。 **示例**: ```bash cp -r /home/user/documents /backup/ # 将`documents`文件夹复制到`/backup`目录下 ``` --- ### **2. 常见场景及命令扩展** #### **场景1:复制并重命名文件夹** ```bash cp -r 源文件夹 目标目录/新名称 ``` **示例**: ```bash cp -r old_folder /backup/new_folder # 复制`old_folder`到`/backup`并重命名为`new_folder` ``` #### **场景2:保留文件属性(权限、时间戳等)** ```bash cp -rp 源文件夹 目标目录 # -p保留属性 ``` #### **场景3:覆盖前提示确认** ```bash cp -ri 源文件夹 目标目录 # -i参数在覆盖前询问 ``` #### **场景4:仅复制更新过的文件(增量复制)** ```bash rsync -avh 源文件夹/ 目标目录/ # 使用rsync工具(需安装) ``` - `rsync` 更高效,支持断点续传增量同步。 --- ### **3. 路径类型说明** | 路径类型 | 示例 | 特点 | |----------------|---------------------------|------------------------------| | **绝对路径** | `/home/user/data` | 从根目录开始,明确唯一路径 | | **相对路径** | `../backup` 或 `./files` | 基于当前工作目录的路径 | **注意事项**: - 若目标目录不存在,`cp`会报错,需提前创建(`mkdir -p 目标目录`)。 - 复制到需要权限的目录(如`/opt`)时,需加`sudo`: ```bash sudo cp -r my_app /opt/ ``` --- ### **4. 避免常见错误** - **错误1**:遗漏`-r`参数 ```bash cp my_folder /backup/ # 报错:略过目录'my_folder' ``` **解决**:必须添加`-r`。 - **错误2**:目标路径未正确指定 ```bash cp -r my_folder backup # 若`backup`不存在,会将`my_folder`重命名为`backup` ``` **解决**:目标路径以`/`结尾或明确路径结构。 --- ### **5. 替代工具:`rsync`(推荐用于复杂操作)** ```bash rsync -avzh 源文件夹/ 目标目录/ # -a归档模式,-v显示进度,-z压缩,-h易读格式 ``` - **优势**:支持增量复制、断点续传、排除特定文件。 --- ### **总结** | 需求 | 命令示例 | |--------------------|-----------------------------------| | 基础复制 | `cp -r src_dir dest_dir` | | 保留属性+重命名 | `cp -rp src_dir dest_dir/new_name`| | 安全覆盖 | `cp -ri src_dir dest_dir` | | 高效增量复制 | `rsync -avh src_dir/ dest_dir/` | **提示**:操作前建议先通过`ls`命令确认路径正确性,谨慎使用`sudo`避免误删系统文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值