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
相关推荐
戴为沐1 天前
Linux内存扩容指南
linux
zylyehuo1 天前
Linux 彻底且安全地删除文件
linux
用户805533698032 天前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式
用户034095297912 天前
linux fcitx 5 雾凇拼音 设置在中文输入法下仍然输入英文标点
linux
乘云数字DATABUFF2 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
Web3探索者4 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
zylyehuo4 天前
Linux系统中网线与USB网络共享冲突
linux
荣--4 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森4 天前
动手实战学 Docker — 从零到集群编排完全指南
运维
Avan_菜菜5 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https