Linux中的cp命令

cp命令的作用:用于复制文件和目录

1.基本语法:

bash 复制代码
cp [选项] 源文件 目标文件
cp [选项] 源文件... 目标目录

2.常用选项:

选项 完整写法 说明
-i --interactive 交互模式,覆盖前提示确认
-r --recursive 递归复制目录(复制目录必须用)
-f --force 强制覆盖,不提示
-u --update 只复制更新的文件(源比目标新才复制)
-v --verbose 显示详细复制过程
-p --preserve 保留文件属性(时间戳、权限、所有者)
-a --archive 归档模式,等于 -dpR(保留所有属性+递归)
-n --no-clobber 不覆盖已存在的文件
-b --backup 覆盖前自动备份目标文件
-s --symbolic-link 创建符号链接(而不是复制文件)
-l --link 创建硬链接(而不是复制文件)
-d 保留链接属性

3.基础用法示例

bash 复制代码
[root@master /]# mkdir Tests
[root@master /]# ls
bin  boot  data  demo01  dev  etc  home  lib  lib64  media  mnt  opt  parent  proc  Projects  root  run  sbin  srv  sys  Tests  tmp  usr  var
[root@master /]# cd Tests
[root@master Tests]# echo "2026年4月25日01点18分" > test1.txt
[root@master Tests]# ls
test1.txt
[root@master Tests]# cat test1.txt
2026年4月25日01点18分
[root@master Tests]# touch test2.txt # 创建一个空文件
[root@master Tests]# cp test1.txt test2.txt # 复制test1.txt到test2.txt
cp: overwrite 'test2.txt'? y
[root@master Tests]# ls
test1.txt  test2.txt
[root@master Tests]# cat test2.txt
2026年4月25日01点18分
bash 复制代码
[root@master Tests]# cp test1.txt test3.txt # 将test1.txt文件的内容复制到test3.txt中,但是test3.txt不存在,则会先创建出这个文件再复制内容进去
[root@master Tests]# ls
test1.txt  test2.txt  test3.txt
[root@master Tests]# cat test3.txt
2026年4月25日01点18分
bash 复制代码
[root@master Tests]# mkdir SubTests
[root@master Tests]# ls
SubTests  test1.txt  test2.txt  test3.txt
[root@master Tests]# cp test1.txt SubTests # 复制文件到指定目录中
[root@master Tests]# ls SubTests
test1.txt
[root@master Tests]# cat SubTests/test1.txt
2026年4月25日01点18分
bash 复制代码
[root@master Tests]# echo "01点26分" > SubTests/file1.txt
[root@master Tests]# ls SubTests
file1.txt  test1.txt
[root@master Tests]# cat SubTests/file1.txt
01点26分
[root@master Tests]# cp SubTests/file1.txt ./myfile1.txt # 复制目标文件到当前目录并重命名。其实也就是新建了一个myfile1.txt文件,然后再执行普通复制
[root@master Tests]# ls
myfile1.txt  SubTests  test1.txt  test2.txt  test3.txt
[root@master Tests]# cat myfile1.txt
01点26分
bash 复制代码
[root@master Tests]# cp -r SubTests / # 复制SubTests目录到根目录下。需要注意两点:1.复制目录必须要用到-r参数。  2.复制到根目录/需要root权限
[root@master Tests]# cd /
[root@master /]# ls
bin  boot  data  demo01  dev  etc  home  lib  lib64  media  mnt  opt  parent  proc  Projects  root  run  sbin  srv  SubTests  sys  Tests  tmp  usr  var
[root@master /]# ls SubTests/
file1.txt  test1.txt
[root@master /]# cat SubTests/file1.txt
01点26分
[root@master /]# cat SubTests/test1.txt
2026年4月25日01点18分
bash 复制代码
[root@master /]# cd SubTests
[root@master SubTests]# cp file1.txt test1.txt / # 复制多个文件到根目录下
[root@master SubTests]# ls /
bin  boot  data  demo01  dev  etc  file1.txt  home  lib  lib64  media  mnt  opt  parent  proc  Projects  root  run  sbin  srv  SubTests  sys  test1.txt  Tests  tmp  usr  var
相关推荐
我是小灰灰吖41 分钟前
QT在线安装器使用指南:从下载到配置完整教程
linux·qt·ubuntu
GlueNa2SiO31 小时前
第十八章 Linux故障排查与恢复
linux·服务器·笔记·学习
寺中人2 小时前
Linux 基础命令入门实战教程:从零掌握常用操作,新手快速上手
linux·运维·服务器·shell·linux 命令·linux 基础教程·linux 入门
V哥AI增长2 小时前
Schema.org 结构化数据与GEO技术落地:AI引擎引用机制与JSON-LD部署实证研究
大数据·运维·人工智能
小张成长计划..2 小时前
【Linux】18:基础IO
linux·运维·服务器
MIXLLRED3 小时前
解决——Ubuntu远程桌面指令更换网络
linux·网络·ubuntu
啊哈一半醒3 小时前
Windows 虚拟机搭建 CentOS 全过程(2026 最新版 + 踩坑解决)
linux·windows·centos
wunaiqiezixin3 小时前
MIT 6.S081 lazy 前置篇(lab5):缺页异常、惰性分配、写时复制、页面换出
linux·unix·os·xv6·mit6.s081
东东最爱敲键盘4 小时前
二阶段总结
运维
Benszen4 小时前
云计算基础-13:Linux网络管理实战-1
linux·运维·云计算