在linux中复制整个文件夹需用cp -r递归模式;cp -a可完整保留权限、时间戳等属性;cp --preserve支持选择性保留元数据;rsync则适用于大目录或需增量同步的场景。

如果您需要在Linux系统中复制整个文件夹及其内容,cp命令是最基础且常用的工具。默认情况下,cp仅能复制文件,要复制目录必须启用递归模式。以下是实现该操作的具体方法:
一、使用cp -r递归复制目录
cp命令本身不支持直接复制目录,-r(或--recursive)选项可启用递归处理,使cp遍历并复制目标目录下的所有子目录和文件。
1、打开终端,切换到源目录所在路径或使用绝对路径指定源位置。
2、输入命令:cp -r /path/to/source_directory /path/to/destination_directory。
3、若目标路径不存在,cp会以源目录名为基础创建新目录;若目标路径已存在,则将源目录作为子目录放入其中。
二、使用cp -a归档模式复制目录
-a选项等价于-r + -p + -d + -l + -s,能完整保留原始目录的权限、所有者、时间戳、符号链接及特殊文件属性,适用于需精确复刻的场景。
1、确认当前用户对源目录具有读取权限,对目标父目录具有写入权限。
2、执行命令:cp -a /path/to/source_directory /path/to/destination_directory。
3、复制完成后,可通过ls -la对比源与目标目录的详细属性是否一致。
三、使用cp --preserve复制并保留特定属性
当不需要全部归档特性,仅需保留部分元数据(如权限、时间戳、所有权)时,--preserve提供更精细的控制能力。
1、列出希望保留的属性,例如mode、timestamps、ownership。
2、运行命令:cp -r --preserve=mode,timestamps,ownership /path/to/source_directory /path/to/destination_directory。
3、若未指定具体属性,--preserve默认等同于--preserve=all,行为接近-a选项。
四、使用rsync替代cp进行目录复制
rsync虽非cp命令,但在复制大目录或需增量同步时更为可靠,支持进度显示、断点续传及排除规则,是cp的常用补充方案。
1、确保系统已安装rsync,若未安装可执行sudo apt install rsync(Debian/Ubuntu)或sudo yum install rsync(CentOS/RHEL)。
2、执行基本复制命令:rsync -av /path/to/source_directory/ /path/to/destination_directory/(注意源路径末尾的斜杠表示“其内部内容”)。
3、添加--progress参数可实时查看传输进度,添加--exclude='*.tmp'可跳过指定类型文件。










