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
相关推荐
sulikey2 小时前
Linux ext2文件系统结构
linux·操作系统·文件系统·linux文件系统·ext2·ext2文件系统
白菜欣3 小时前
Linux — 进程控制
android·linux·运维
JoneBB3 小时前
ABAP Webservice连接
运维·开发语言·数据库·学习
皮卡狮4 小时前
Linux开发专属工具
linux
weixin_421725264 小时前
Linux 编程语言全解析:C、C++、Python、Go、Rust 谁更强?
linux·python·go·c·编程语言
Tolalal4 小时前
Vmware Ubuntu虚拟机扩容
linux·运维·ubuntu
咚为5 小时前
比AccessLog更全面的原生Nginx 日志记录
运维·nginx·junit
我星期八休息5 小时前
Linux系统编程—基础IO
linux·运维·服务器·c语言·c++·人工智能·算法
Shingmc35 小时前
【Linux】数据链路层
linux·服务器·网络
a752066285 小时前
零基础实操:小龙虾 AI OpenClaw 接入 Kimi 详细步骤
运维·服务器