Linux中复制文件夹及全部内容需用递归命令:一、cp -r递归复制;二、cp -a归档式保留全部属性;三、cp -R为-r大写等效;四、cp --parents保留相对路径;五、rsync -av实现增强复制。

如果您需要在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启用详细输出,便于观察复制过程。










