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
相关推荐
切糕师学AI2 小时前
使用 gdisk 快速判断硬盘分区表类型:是 GPT 还是 MBR?
linux·硬盘分区表·gdisk
2301_800976932 小时前
Linux的基本命令
linux·运维·服务器
原来是猿2 小时前
线程安全的单例模式
linux·服务器·开发语言·单例模式·策略模式
许愿OvO2 小时前
MySQL 8.3.0 运维与集群架构实战
运维·mysql·架构
凌云拓界2 小时前
青创赛终评手记:最后的成功
运维·科技·职场和发展·架构·创业创新
zjeweler2 小时前
宝藏网站推荐:云服务器特惠与网安学习资源的一站式聚合平台
运维·服务器·学习
尘世壹俗人2 小时前
如何检查服务器上消耗资源的程序是那个
服务器·前端·chrome
时空自由民.2 小时前
Linux,ESP IDF,NuttX OS使用的项目编译管理构建体系Kconfig + Kbuild(或基于 Make/CMake 的构建系统)
linux·运维·服务器
上弦月-编程2 小时前
C语言位运算:从入门到精通
运维·c语言·开发语言·vscode·算法·leetcode·极限编程