Linux递归复制目录命令详解
时间:2026-03-12 09:00:46 496浏览 收藏
本文深入解析了Linux中递归复制目录的五种核心方法:从最基础的`cp -r`实现全层级拷贝,到`cp -a`精准保留权限、时间戳等全部属性,再到`cp -R`的兼容性写法、`cp --parents`维持相对路径结构,以及功能更强大的`rsync -av`增量同步方案;无论你是初学者需要可靠完成日常备份,还是运维人员追求数据一致性与效率,这些实用技巧都能帮你避开常见陷阱(如路径斜杠歧义、属性丢失、嵌套错误),真正掌握Linux目录复制的精髓。

如果您需要在Linux系统中将一个文件夹及其所有内容完整地复制到另一个位置,则必须使用支持递归操作的cp命令。以下是实现该目标的具体方法:
一、使用cp -r选项递归复制整个目录
cp -r是最基础且最常用的目录复制方式,其中-r(或--recursive)表示递归处理子目录和文件,确保源目录下所有层级的内容均被复制。
1、打开终端,切换到包含待复制目录的路径,或直接使用绝对路径。
2、输入命令:cp -r /源目录路径 /目标目录路径。
3、按回车执行。若目标路径不存在,系统会自动创建同名目录;若存在且为空,则直接写入;若非空,源目录将作为子目录嵌套于目标路径内。
二、使用cp -a选项保留全部属性进行归档式复制
cp -a等价于cp -r --preserve=all,不仅递归复制,还完整保留文件权限、所有者、时间戳、符号链接等元数据,适用于需精确复现源结构的场景。
1、确认当前用户对源目录具有读取权限,对目标路径具有写入权限。
2、执行命令:cp -a /源目录路径 /目标目录路径。
3、命令执行完成后,可通过ls -la对比源与目标目录的详细属性是否一致。
三、使用cp -R选项替代-r进行大写风格调用
-R是-r的等效大写形式,在多数GNU coreutils版本中功能完全相同,部分旧系统或特定shell环境下可能仅识别-R。
1、检查系统所用cp实现:运行cp --version确认是否为GNU版本。
2、输入命令:cp -R /源目录路径 /目标目录路径。
3、注意:若目标路径末尾带有斜杠(如/目标目录/),则源目录内容将被直接解包至该路径下,而非以源目录名为子目录嵌套。
四、使用cp --parents保留源目录的相对路径结构
当需要将某子目录连同其上级路径一同复制(例如从/home/user/project/src复制src并保持project/src结构),--parents可自动创建完整中间目录。
1、进入源目录的父级目录,例如cd /home/user/project。
2、运行命令:cp --parents src /目标根路径/。
3、执行后,目标路径下将生成/目标根路径/project/src结构,而非仅src单层目录。
五、使用rsync命令作为cp的增强替代方案
rsync虽非cp本身,但常用于目录复制任务,支持增量同步、排除规则、进度显示等特性,适合大目录或需校验的场景。
1、确认系统已安装rsync:which rsync,如未安装则使用包管理器安装(如sudo apt install rsync)。
2、执行基本复制命令:rsync -av /源目录路径/ /目标目录路径/(注意源路径末尾的斜杠,决定是否复制目录自身)。
3、-a启用归档模式(含递归及属性保留),-v启用详细输出,便于观察复制过程。
终于介绍完啦!小伙伴们,这篇关于《Linux递归复制目录命令详解》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布文章相关知识,快来关注吧!
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
248 收藏
-
302 收藏
-
478 收藏
-
245 收藏
-
327 收藏
-
232 收藏
-
486 收藏
-
380 收藏
-
201 收藏
-
298 收藏
-
148 收藏
-
326 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 485次学习