cp命令:复制文件和目录
【功能说明】
cp命令可以理解英文单词copy的缩写,其功能为复制文件和目录。
【语法格式】
1 cp [option] [source] [dest]
2 cp 【选项】 【源文件】 【目标文件】
提示说明:
1) cp命令以及后面的选项和文件,每个元素之间都至少要有一个空格
【命令参数说明】
参数选项 |
解释说明 |
-p |
复制文件时保持源文件的所有者、权限信息及时间属性 |
-d |
如果复制的源文件时符号链接,那么仅复制符号链接本身,而保留符号链接所有指向的目标文件或目录 |
-r |
递归复制目录,即复制目录下的所有层级的子目录及文件 |
-a |
等同于上面的 p 、d、r这三个选项的功能的总和 |
-i |
覆盖已有文件前提示用户确认 |
-t |
默认情况下命令格式是 “cp源文件” “目标文件”,使用 -t 参数可以颠倒顺序,格式变为 “cp -t 目标文件 源文件” |
【使用范例】
1. 基础范例
1.1 案例1:无参数和带参数-a的比较
[root@python ~]# cd /test/ [root@python test]# pwd /test
[root@python test]# ll -h #查看当前文件的时间属性,大家已自己的为准 total 0 -rw-r--r-- 1 root root 0 Dec 1 03:33 dir1 -rw-r--r-- 1 root root 0 Dec 1 03:33 dir2 -rw-r--r-- 1 root root 0 Dec 1 03:33 dir3 -rw-r--r-- 1 root root 0 Dec 1 03:33 dir4 -rw-r--r-- 1 root root 0 Dec 1 03:33 dir5 -rw-r--r-- 1 root root 0 Dec 1 03:33 file1.txt -rw-r--r-- 1 root root 0 Dec 1 03:33 file2.txt -rw-r--r-- 1 root root 0 Dec 1 03:33 file3.txt -rw-r--r-- 1 root root 0 Dec 1 03:33 file4.txt -rw-r--r-- 1 root root 0 Dec 1 03:33 file5.txt
[root@python test]# cp file1.txt file4.txt cp: overwrite ‘file4.txt’? y [root@python test]# cp -a file1.txt file5.txt cp: overwrite ‘file5.txt’? y
[root@python test]# ll -h #再次查看当前文件的时间属性 total 0 -rw-r--r-- 1 root root 0 Dec 1 03:33 dir1 -rw-r--r-- 1 root root 0 Dec 1 03:33 dir2 -rw-r--r-- 1 root root 0 Dec 1 03:33 dir3 -rw-r--r-- 1 root root 0 Dec 1 03:33 dir4 -rw-r--r-- 1 root root 0 Dec 1 03:33 dir5 -rw-r--r-- 1 root root 0 Dec 1 03:33 file1.txt #file1.txt文件是源文件 -rw-r--r-- 1 root root 0 Dec 1 03:33 file2.txt -rw-r--r-- 1 root root 0 Dec 1 03:33 file3.txt -rw-r--r-- 1 root root 0 Dec 1 03:36 file4.txt #file4在没有使用任何参数 -rw-r--r-- 1 root root 0 Dec 1 03:33 file5.txt #file5在使用了“-a”参数复制后的,属性不变
|
可以发现使用了-a参数复制时,文件的时间属性没有任何变化,-a参数的功能包含-p参数保持文件的属性功能。
1.2 案例2:使用 -i 参数的例子
[root@python test]# cp -i file1.txt file5.txt #使用-i 参数复制文件,会提示是否覆盖文件 cp: overwrite ‘file5.txt’? y [root@python test]# cp file1.txt file5.txt #不使用-i参数一样的结果,为什么呢? cp: overwrite ‘file5.txt’? y [root@python test]# alias cp #使用alias命令查看到cp命令 系统设置了cp -i 的别名了 alias cp='cp -i'
|
1.3 案例3:使用-r参数复制目录
[root@python test]# cp dir1 dir2 #复制dir1 到dir2,但结果显示跳过目录dir1 cp: omitting directory ‘dir1’ [root@python test]# cp -r dir1 dir2/ #若使用-r参数则复制成功。
[root@python test]# tree dir2 #查看复制结果 dir2 ├── dir1 │ ├── test1 │ │ ├── test1 │ │ ├── test2 │ │ ├── test3 │ │ ├── test4 │ │ └── test5 │ ├── test2 │ │ ├── test1 │ │ ├── test2 │ │ ├── test3 │ │ ├── test4 │ │ └── test5 │ └── test3 │ ├── test1 │ ├── test2 │ ├── test3 │ ├── test4 │ └── test5 ├── test1 │ ├── test1 │ ├── test2 │ ├── test3 │ ├── test4 │ └── test5 ├── test2 │ ├── test1 │ ├── test2 │ ├── test3 │ ├── test4 │ └── test5 └── test3 ├── test1 ├── test2 ├── test3 ├── test4 └── test5
7 directories, 30 files
#提示:
使用-a参数也可以达到相同的效果,因为-a参数相当于“dpr” 三个参数
|
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具