Linux中用cp命令复制文件或目录:一、基本复制(cp 源 目标);二、递归复制目录(cp -r);三、归档复制保留属性(cp -a);四、交互式防覆盖(cp -i);五、增量复制(cp -u)。

如果您需要在Linux系统中将文件或目录从一个位置复制到另一个位置,则可以使用cp命令完成此操作。以下是执行复制任务的具体步骤:
一、基本文件复制操作
该方法适用于单个普通文件的复制,不涉及目录结构或特殊属性保留。cp命令默认仅复制文件内容,目标路径若不存在则报错,若已存在同名文件则直接覆盖。
1、打开终端,进入源文件所在目录或使用绝对路径指定源文件。
2、输入命令:cp 源文件路径 目标文件路径,例如:cp /home/user/doc.txt /tmp/。
3、按回车执行,无输出即表示复制成功;可使用ls命令验证目标位置是否存在该文件。
二、复制目录及其全部内容
复制目录需启用递归模式,否则cp会因无法处理目录类型而报错。-r选项(或-R)用于启用递归复制,确保子目录、文件及嵌套结构完整迁移。
1、确认目标目录路径可写,且用户具有读取源目录和写入目标位置的权限。
2、输入命令:cp -r 源目录路径 目标目录路径,例如:cp -r /home/user/project /backup/。
3、执行后等待命令返回提示符;若源目录名未在目标路径末尾显式指定,则会在目标路径下创建同名子目录。
三、保留文件属性与权限的复制
使用-a选项可实现归档复制,它等效于同时启用-r(递归)、-p(保留权限、所有者、时间戳等属性)、-d(保留符号链接)等多个标志,适用于需要精确复现原始状态的场景。
1、检查源路径中是否存在符号链接、特殊权限位(如setuid)或访问控制列表(ACL)等需保留项。
2、输入命令:cp -a 源路径 目标路径,例如:cp -a /etc/nginx/ /root/nginx_backup/。
3、执行完毕后,可通过ls -l和stat命令比对源与目标文件的权限、所有者、修改时间是否一致。
四、交互式复制避免误覆盖
当目标位置已存在同名文件或目录时,-i选项可使cp在覆盖前暂停并提示用户确认,防止因误操作导致数据丢失。
1、在终端中输入含-i参数的cp命令,例如:cp -i file.txt /home/user/。
2、若目标路径中已存在file.txt,终端将显示提示:cp: overwrite '/home/user/file.txt'? 。
3、输入y并回车确认覆盖,输入n则跳过该文件;其他输入(包括直接回车)均视为拒绝覆盖。
五、仅复制更新过的文件(增量复制)
-u选项使cp仅在源文件比目标文件新,或目标文件不存在时才执行复制,适合同步操作中减少冗余传输和写入开销。
1、确保源文件和目标文件的时间戳准确反映其最新修改状态。
2、输入命令:cp -u 源文件或目录 目标路径,例如:cp -u *.log /var/log/archive/。
3、执行后,只有满足“源更新”或“目标缺失”条件的条目被复制,其余保持原状。

















