CentOS拷贝命令(cp)如何正确操作?

在CentOS系统中,拷贝文件和目录是日常运维和管理中非常常见的操作,掌握不同场景下的拷贝命令能大幅提升工作效率,本文将详细介绍CentOS中常用的拷贝命令,包括基础命令cp、远程拷贝命令scp以及增量同步命令rsync,并通过实例说明其使用方法和适用场景。

centos拷贝命令怎么弄

基础本地拷贝命令:cp

cp(copy)是CentOS中最基础的文件和目录拷贝命令,主要用于本地文件系统内的数据拷贝,支持文件到文件、文件到目录、目录到目录等多种场景。

基本语法

cp [选项] 源文件或目录 目标文件或目录

常用选项及说明

选项 功能描述
-r-R 递归拷贝目录及其所有子目录和文件(仅用于目录)
-p 保留源文件的权限、时间戳、所有者等信息
-f 强制覆盖目标文件,不提示确认
-i 覆盖前提示用户确认(默认行为,与-f对立)
-a 归档模式,相当于-dpR(保留属性、递归拷贝)
-l 创建硬链接而非拷贝文件
-s 创建符号链接而非拷贝文件
-u 仅在源文件比目标文件新或目标文件不存在时拷贝

实用示例

  • 拷贝单个文件
    /home/user/test.txt拷贝到/tmp/目录:

    cp /home/user/test.txt /tmp/

    若目标文件已存在,默认会提示覆盖(需-f强制覆盖)。

  • 递归拷贝目录
    /home/user/docs目录及其所有内容拷贝到/backup/

    cp -r /home/user/docs /backup/

    注意:若目标目录/backup/下已存在docs,拷贝后/backup/docs/会成为/home/user/docs/的子目录(错误操作),需确保目标目录不存在或使用/backup/docs/作为目标(末尾加表示拷贝目录内容到目标目录)。

  • 保留文件属性拷贝
    拷贝文件时保留权限、时间戳等信息:

    cp -p /home/user/config.conf /etc/
  • 批量拷贝文件
    使用通配符拷贝所有.log文件到/var/log/archive/

    cp /var/log/*.log /var/log/archive/

远程拷贝命令:scp

scp(secure copy)基于SSH协议实现加密传输,用于在本地主机与远程主机之间安全拷贝文件或目录,语法与cp类似,但需指定远程主机地址(格式为[用户@]主机:路径)。

基本语法

scp [选项] 源文件或目录 [用户@]主机:目标路径
scp [选项] [用户@]主机:源文件或目录 目标路径

常用选项及说明

选项 功能描述
-r 递归拷贝目录
-P 指定远程主机的SSH端口(默认22,注意大写)
-p 保留文件的修改时间、访问时间和权限
-C 启用压缩传输
-q 静默模式,不显示传输进度
-l 限制传输速率(单位:Kbit/s)

实用示例

  • 本地文件拷贝到远程主机
    /home/user/file.txt拷贝到远程主机168.1.100/tmp/目录(用户为root):

    scp /home/user/file.txt root@192.168.1.100:/tmp/

    首次连接会提示确认远程主机指纹(输入yes),之后需输入用户密码。

    centos拷贝命令怎么弄

  • 远程主机文件下载到本地
    从远程主机168.1.100/opt/目录下载data.zip到本地当前目录:

    scp root@192.168.1.100:/opt/data.zip ./
  • 递归拷贝远程目录
    拷贝远程主机168.1.100/var/www/html/目录到本地/backup/

    scp -r root@192.168.1.100:/var/www/html/ /backup/
  • 指定端口和压缩传输
    通过2222端口拷贝文件,并启用压缩:

    scp -P 2222 -C /home/user/largefile.zip user@192.168.1.100:/opt/
  • 免密拷贝(基于SSH密钥认证)
    若已配置SSH免密登录,可直接传输无需输入密码:

    scp -r /home/user/project/ user@remote:/opt/

增量同步命令:rsync

rsync(remote sync)是一款强大的数据同步工具,支持本地和远程同步,核心优势是增量拷贝(仅传输变化的部分),适合大文件、目录或频繁同步场景,可保留文件属性、支持断点续传、排除特定文件等。

基本语法

rsync [选项] 源文件或目录 目标文件或目录

常用选项及说明

选项 功能描述
-a 归档模式,保留权限、时间戳、符号链接等(相当于-rlptgoD
-v 显示详细传输过程
-z 压缩传输数据(减少网络带宽占用)
-h 以人类可读格式显示传输速率(如1K、2M)
--progress 显示传输进度条
--delete 删除目标中多余文件(确保与源完全一致,谨慎使用)
--exclude 排除特定文件或目录(可多次使用排除多个)
--bwlimit 限制传输速率(单位:KB/s)
--partial 断点续传(保留未传输完成的文件)
-e 指定远程shell程序(如SSH)

实用示例

  • 本地目录同步
    /home/user/src/同步到/home/user/dest/,保留所有属性,仅传输变化文件:

    rsync -avz /home/user/src/ /home/user/dest/

    注意:源路径末尾的表示拷贝src目录下的内容到dest(若不加,则将src目录整体拷贝到dest下)。

  • 远程目录同步
    将本地/data/同步到远程主机168.1.100/backup/data/(使用SSH加密传输):

    rsync -avz -e ssh /data/ root@192.168.1.100:/backup/data/
  • 排除特定文件同步
    同步时排除.log文件和temp目录:

    rsync -avz --exclude="*.log" --exclude="temp" /home/user/src/ /home/user/dest/
  • 删除目标多余文件
    将本地/app/完全同步到远程/remote/app/(目标中存在但源中不存在的文件将被删除):

    centos拷贝命令怎么弄

    rsync -avz --delete /app/ root@192.168.1.100:/remote/app/

    ⚠️ 此操作风险较高,建议先测试确认。

  • 带进度限制速率同步
    同步文件并显示进度条,限制速率为1MB/s:

    rsync -avh --progress --bwlimit=1024 /largefile.zip /backup/

命令对比与适用场景

命令 适用场景 优点 缺点
cp 本地文件/目录简单拷贝 无需额外工具,基础操作 无增量传输,大文件效率低
scp 本地与远程安全拷贝 基于SSH加密,简单易用 每次全量传输,无增量功能
rsync 本地/远程增量同步、大文件同步 增量传输、保留属性、支持断点续传 参数复杂,首次配置稍麻烦

进阶技巧

  1. 结合find批量拷贝
    查找最近7天修改的文件并拷贝到备份目录:

    find /var/log -type f -mtime -7 -exec cp {} /backup/recent_logs/ ;
  2. 使用tar打包后拷贝
    对大量小文件打包减少IO,再通过scp传输:

    tar -czf - /home/user/docs/ | ssh user@remote "tar -xzf - -C /opt/"

相关问答FAQs

Q1:拷贝大文件时如何避免因网络中断导致传输失败?
A:对于大文件传输,推荐使用rsync--partial选项(保留未完成传输的文件)或--append(断点续传):

rsync --partial --progress -avz /largefile.zip user@remote:/path/

若使用scp,可通过nohup配合screen/tmux后台运行,避免终端关闭中断传输:

screen -S scp_session
scp /largefile.zip user@remote:/path/
# 按Ctrl+A+D分离会话,后续可通过`screen -r scp_session`恢复

Q2:如何拷贝时排除特定文件类型或目录?
A:

  • 使用cp时,需结合findxargs排除文件(如排除.tmp文件):
    find /source -name "*.tmp" -prune -o -type f -print0 | xargs -0 cp -t /destination
  • 使用rsync时,直接通过--exclude选项指定排除模式(更简单):
    rsync -avz --exclude="*.tmp" --exclude="temp_dir" /source/ /destination/

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/17072.html

(0)
酷番叔酷番叔
上一篇 2025年8月25日 23:40
下一篇 2025年8月25日 23:52

相关推荐

  • 命令运行失败?全方位解决指南!

    解决运行命令问题需检查命令语法、系统环境配置、用户权限设置、关键文件完整性,并排查系统深层故障或设置冲突。

    2025年7月31日
    3500
  • Windows翻页快捷键是什么?

    基础翻页方法键盘快捷键向上翻页:直接按键盘上的 <Page Up> 键(通常位于方向键上方),向下翻页:按 <Page Down> 键,逐行滚动:使用 <↑> 或 <↓> 方向键,笔记本键盘的特殊情况部分笔记本需配合 <Fn> 键:按住 <Fn……

    2025年7月8日
    4800
  • Mac如何打开命令窗口并调整窗口大小?

    在macOS系统中,命令窗口通常指“终端”(Terminal)或第三方终端工具(如iTerm2),它是用户与系统交互的重要界面,调整命令窗口的大小(包括窗口尺寸、字体大小、布局等)能提升操作效率,尤其对于需要频繁输入命令、查看输出或进行多任务处理的用户而言,本文将详细介绍macOS中打开命令窗口的方法,以及调整……

    2025年8月29日
    3300
  • 如何用命令提示符修复安全模式?

    带命令提示符的安全模式是Windows的一种特殊启动选项,它仅加载最基本的系统驱动和服务,不启动图形界面,直接进入命令提示符窗口,主要用于通过命令行工具诊断和修复严重的系统问题。

    2025年7月26日
    4000
  • vim中如何快速跳转到一行最末尾?

    在文本编辑过程中,快速定位到行尾是一项高频操作,尤其是在vim这种以键盘操作为核心的编辑器中,掌握高效的行尾移动命令能显著提升编辑效率,本文将详细解析vim中移动到一行最末尾的各种方法,涵盖不同模式下的操作逻辑、命令细节及实用技巧,帮助用户根据实际场景选择最合适的操作方式,普通模式下的行尾移动命令普通模式(No……

    2025年8月25日
    3000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信