linux 复制指令 cp 命令深度详解
linux 复制指令核心就是 cp,全称 copy,是系统原生自带命令,主要用来复制单个文件,也可以递归复制整个目录,支持保留权限属主时间戳,还能在跨目录同名复制的时候做交互确认,日常备份配置文件,批量拷贝项目代码,迁移日志数据都离不开这个 linux 复制指令。掌握这个 linux 复制指令的关键,是理解源路径和目标路径的区别,还有复制目录必须加递归参数,很多新手直接 cp 目录报错,就是忘记加 r 参数。同时 Linux 是多用户权限体系,如果当前用户对源文件没有读权限,或者目标目录没有写权限,linux 复制指令就会执行失败,报权限相关错误,执行之前要确认读写权限,重要文件复制之后最好校验文件大小,md5 值,确认复制完整没有损坏。
基础语法格式
cp 源文件 目标路径
cp 源目录 目标目录 必须搭配递归参数
常用参数说明
r 递归复制,复制目录以及目录里面全部子文件子目录,复制目录必选
R 和 r 功能一致
p 保留原文件的权限 所有者 修改时间等属性
f 强制覆盖,目标存在同名文件直接覆盖,不提示
i 交互提示,覆盖同名文件之前询问确认,防止误覆盖
a 归档模式,等价于 rpd,递归复制同时保留所有属性,备份场景首选
v 显示复制过程,输出每一个正在复制的文件名称
u 更新模式,只有源文件比目标文件新,或者目标不存在的时候才执行复制
基础操作步骤
第一步 打开终端,使用 pwd 确认当前位置,准备好源文件或者源目录的路径,可以写相对路径,也可以写绝对路径
第二步 根据需求选择对应的参数,拼接完整 linux 复制指令
第三步 回车执行命令
第四步 使用 ls 或者 du 校验目标位置文件是否生成,核对大小和属性
典型使用示例
复制单个文件
cp test.txt/data/backup
复制文件并且改名
cp test.txt/data/backup/newtest.txt
递归复制整个目录
cp -r /data/app/data/backup
归档备份保留全部属性
cp -a /data/app/data/backup
复制的时候覆盖前提示确认
cp -i test.txt/data/backup
进阶组合用法
cp 配合通配符批量复制,复制目录下全部 txt 文件
cp .txt/data/backup
cp 配合管道和 xargs,筛选之后批量复制,适合大批量文件处理
find /data/log -name ".log" | xargs cp -t /tmp/logbak
容易踩坑要点
同名覆盖风险,默认部分系统 cp 做了别名,执行的时候自动带 i 交互,如果脚本里面执行,别名不会生效,会直接覆盖原有文件,写脚本要特别留意。
软链接复制,默认 cp 复制软链接的时候,会复制链接指向的真实文件,如果想要只复制链接本身,需要加 d 参数。
跨文件系统复制,cp 是读取源文件全部内容再写入目标,不是硬迁移,复制完成之后源文件仍然保留,和 mv 移动命令不一样,mv 是移动,cp 是复制留存原件。
权限报错,源文件只读或者目标目录不可写,linux 复制指令会终止执行,需要切换用户或者 sudo 提权。
参数对照表
| 参数 | 作用 | 适用场景 |
|---|---|---|
| r | 递归复制目录 | 拷贝整个项目目录 |
| p | 保留权限时间属主 | 配置备份 |
| a | 归档完整保留属性 | 整机目录备份 |
| i | 覆盖前询问 | 防止误覆盖 |
| f | 强制覆盖 | 自动化脚本 |
| v | 打印复制明细 | 排查复制是否成功 |
| u | 增量更新 | 定期同步备份 |
综合来说,linux 复制指令 cp 是最基础高频命令,单纯单文件复制不需要额外参数,目录复制一定要加上 r 或者 a,备份场景优先 a 保留全部元数据,自动化脚本谨慎使用强制覆盖,复制完成校验文件完整性,区分 cp 复制和 mv 移动的本质差别。
【常见问题】
问题 1 linux 复制指令复制目录为什么报错
回答 1 linux 复制指令 cp 默认只支持单文件,直接复制目录会报错,使用这个 linux 复制指令的时候必须加上 r 递归参数,加上 r 之后 linux 复制指令才会把目录内全部子文件子目录一并拷贝过去。
问题 2 linux 复制指令 cp 能不能保留原文件权限
回答 2 linux 复制指令 cp 可以保留原文件权限,使用 p 参数或者 a 归档参数,linux 复制指令加上 p 之后,复制出来的新文件权限属主修改时间和源文件保持一致,适合配置文件备份。
问题 3 linux 复制指令和 mv 命令有什么本质区别
回答 3 linux 复制指令 cp 是复制副本,源文件仍然保留,mv 是移动,源位置文件会消失,linux 复制指令主要用来备份,mv 一般用来迁移或者重命名,不要把 linux 复制指令当成移动命令使用。
问题 4 linux 复制指令批量复制通配符怎么写
回答 4 linux 复制指令支持通配符,例如 cp .log/backup,这个 linux 复制指令可以一次性把当前目录全部 log 文件复制到 backup 目录,适合批量同类文件拷贝。
【免责申明】
本文 linux 复制指令仅用于合法授权的服务器学习和运维操作,强制覆盖操作会覆盖原有文件,执行前确认目标路径,重要数据提前备份,禁止未经授权使用 linux 复制指令拷贝他人系统文件,因错误执行 linux 复制指令造成数据覆盖丢失,相关责任由使用者自行承担。
相关阅读
-
做好咸鱼茄子煲关键在于茄子少油不发黑,咸鱼提前泡掉多余咸味,小火慢焖让咸鱼鲜香味渗进茄子里面,茄子软嫩...浏览全文>>
-
linux 复制指令核心就是 cp,全称 copy,是系统原生自带命令,主要用来复制单个文件,也可以递归复制整个目...浏览全文>>
-
稀奶油也叫淡奶油,脂肪含量一般在 30 到 36 之间,分动物性和植物性,既能打发成裱花奶油,也可以直接加...浏览全文>>
-
核心结论,line 是初中英语高频多义词,音标 laɪn ,既可以做名词,也可以做动词,名词最基础意思是线、...浏览全文>>
-
微波炉煮米饭可以煮熟,关键是米和水的比例合适,要用微波炉专用带盖容器,盖子不要扣死密封,留出透气的缝隙...浏览全文>>
-
核心结论 在标准汉语拼音方案里面,lia 并不是正式独立的基本音节,普通话原生音节表里面没有 lia 这个完...浏览全文>>
-
土豆番茄汤是一道简单暖胃的家常汤品,核心要点就是把番茄炒出沙释放酸甜风味,土豆切均匀小块煮到软绵,保留...浏览全文>>
-
核心结论是读音 lei 开头并且寓意吉祥美好的汉语词语,主要集中在第一声 lei 也就是蕾,第三声 lei 也就...浏览全文>>
-
做好糖霜蛋糕分为蛋糕胚和糖霜两部分,蛋糕胚要松软不塌陷,糖霜顺滑不流淌,很多人在家做糖霜蛋糕容易出现蛋...浏览全文>>
-
led 发光字主流制作方式主要分为亚克力平面发光字 树脂发光字 迷你发光字 不锈钢背发光字 灯箱式发光字这...浏览全文>>
- 咸鱼茄子煲 家常下饭咸鱼茄子煲做法
- 素炒茄子丝 清淡入味家常做法
- lamp 是台灯还是灯 英语词义深度辨析
- 水煮虾沾料怎么调 多款家常蘸汁
- k304 停运了吗 停运状态查询说明
- justsoso 怎么回复别人 口语应答表达讲解
- java 是开发什么的 应用领域深度解析
- itunes 怎么打不开了 Windows 启动故障排查
- 蜜都面膜是假货吗 资质和辨别说明
- ipv6 地址怎么填写 详细配置指南
- iphone 原彩显示省电吗 耗电原理详解
- iphonex 什么时候上市的 首发时间与发售节点
- 鸡蛋果怎么吃好吃 百香果多种吃法教程
- iphone7 什么时候上市的 发布开售时间
- ipad 激活锁怎么强制解除 官方正规解除方案说明
- ipad 充不进去电是怎么回事 原因解析 + 排查方案
- 干茶树菇要泡多久 泡发实操指南
- internet 最初由谁建立 ARPANET 起源考点
- 大米火腿粥的做法家常暖粥
- implementation 单词全解 词性派生与搭配详解
