每天一个linux命令(8):cp 命令
cp命令用来复制文件或者目录,是Linux系统中最常用的命令之一。一般情况下,shell会设置一个别名,在命令行下复制文件时,如果目标文件已经存在,就会询问是否覆盖,不管你是否使用-i参数。但是如果是在shell脚本中执行cp时,没有-i参数时不会询问是否覆盖。这说明命令行和shell脚本的执行方式有些不同。
1.命令格式:
用法:
cp [选项]... [-T] 源 目的
或:cp [选项]... 源... 目录
或:cp [选项]... -t 目录 源...
2.命令功能:
将源文件复制至目标文件,或将多个源文件复制至目标目录。
3.命令参数:
-a, --archive 等于-dR --preserve=all
--backup[=CONTROL 为每个已存在的目标文件创建备份
-b 类似--backup 但不接受参数
--copy-contents 在递归处理是复制特殊文件内容
-d 等于--no-dereference --preserve=links
-f, --force 如果目标文件无法打开则将其移除并重试(当 -n 选项
存在时则不需再选此项)
-i, --interactive 覆盖前询问(使前面的 -n 选项失效)
-H 跟随源文件中的命令行符号链接
-l, --link 链接文件而不复制
-L, --dereference 总是跟随符号链接
-n, --no-clobber 不要覆盖已存在的文件(使前面的 -i 选项失效)
-P, --no-dereference 不跟随源文件中的符号链接
-p 等于--preserve=模式,所有权,时间戳
--preserve[=属性列表 保持指定的属性(默认:模式,所有权,时间戳),如果
可能保持附加属性:环境、链接、xattr 等
-R, -r, --recursive 复制目录及目录内的所有项目
4.命令实例:
实例一:复制单个文件到目标目录,文件在目标文件中不存在
命令:
cp log.log test5
输出:
[root@localhost test]# cp log.log test5
[root@localhost test]# ll
-rw-r--r-- 1 root root 0 10-28 14:48 log.log
drwxr-xr-x 6 root root 4096 10-27 01:58 scf
drwxrwxrwx 2 root root 4096 10-28 14:47 test3
drwxr-xr-x 2 root root 4096 10-28 14:53 test5
[root@localhost test]# cd test5
[root@localhost test5]# ll
-rw-r--r-- 1 root root 0 10-28 14:46 log5-1.log
-rw-r--r-- 1 root root 0 10-28 14:46 log5-2.log
-rw-r--r-- 1 root root 0 10-28 14:46 log5-3.log
-rw-r--r-- 1 root root 0 10-28 14:53 log.log
说明:
在没有带-a参数时,两个文件的时间是不一样的。在带了-a参数时,两个文件的时间是一致的。
实例二:目标文件存在时,会询问是否覆盖
命令:
cp log.log test5
输出:
[root@localhost test]# cp log.log test5
cp:是否覆盖“test5/log.log”? n
[root@localhost test]# cp -a log.log test5
cp:是否覆盖“test5/log.log”? y
[root@localhost test]# cd test5/
[root@localhost test5]# ll
-rw-r--r-- 1 root root 0 10-28 14:46 log5-1.log
-rw-r--r-- 1 root root 0 10-28 14:46 log5-2.log
-rw-r--r-- 1 root root 0 10-28 14:46 log5-3.log
-rw-r--r-- 1 root root 0 10-28 14:48 log.log
说明:
目标文件存在时,会询问是否覆盖。这是因为cp是cp -i的别名。目标文件存在时,即使加了-f标志,也还会询问是否覆盖。
实例三:复制整个目录
命令:
输出:
目标目录存在时:
[root@localhost test]# cp -a test3 test5
[root@localhost test]# ll
-rw-r--r-- 1 root root 0 10-28 14:48 log.log
drwxr-xr-x 6 root root 4096 10-27 01:58 scf
drwxrwxrwx 2 root root 4096 10-28 14:47 test3
drwxr-xr-x 3 root root 4096 10-28 15:11 test5
[root@localhost test]# cd test5/
[root@localhost test5]# ll
-rw-r--r-- 1 root root 0 10-28 14:46 log5-1.log
-rw-r--r-- 1 root root 0 10-28 14:46 log5-2.log
-rw-r--r-- 1 root root 0 10-28 14:46 log5-3.log
-rw-r--r-- 1 root root 0 10-28 14:48 log.log
drwxrwxrwx 2 root root 4096 10-28 14:47 test3
目标目录不存在是:
[root@localhost test]# cp -a test3 test4
[root@localhost test]# ll
-rw-r--r-- 1 root root 0 10-28 14:48 log.log
drwxr-xr-x 6 root root 4096 10-27 01:58 scf
drwxrwxrwx 2 root root 4096 10-28 14:47 test3
drwxrwxrwx 2 root root 4096 10-28 14:47 test4
drwxr-xr-x 3 root root 4096 10-28 15:11 test5
[root@localhost test]#
说明:
注意目标目录存在与否结果是不一样的。目标目录存在时,整个源目录被复制到目标目录里面。
实例四:复制的 log.log 建立一个连结档 log_link.log
命令:
cp -s log.log log_link.log
输出:
[root@localhost test]# cp -s log.log log_link.log
[root@localhost test]# ll
lrwxrwxrwx 1 root root 7 10-28 15:18 log_link.log -> log.log
-rw-r--r-- 1 root root 0 10-28 14:48 log.log
drwxr-xr-x 6 root root 4096 10-27 01:58 scf
drwxrwxrwx 2 root root 4096 10-28 14:47 test3
drwxrwxrwx 2 root root 4096 10-28 14:47 test4
drwxr-xr-x 3 root root 4096 10-28 15:11 test5
说明:
那个 log_link.log 是由 -s 的参数造成的,建立的是一个『快捷方式』,所以您会看到在文件的最右边,会显示这个文件是『连结』到哪里去的!
转载于:https://www.cnblogs.com/CandiceW/p/6132891.html
每天一个linux命令(8):cp 命令相关推荐
- linux命令cp -a,linux命令_ls命令与cp命令详解(一)
linux命令_ls命令与cp命令详解(1) 最近想详细熟悉下linux命令,学习笔记记录下: 今天主要学习的是目录操作,下面给大家介绍一下今天学到的几个命令: 1.ls命令 功能:显示文件或者目录信 ...
- 【山外笔记-Linux 命令】cp 命令详解
Linux 命令之 cp 命令详解 一.cp 命令简介 cp 命令主要用于复制文件或目录.即用来将一个或多个源文件或者目录复制到指定的目的文件或目录. cp 命令可以将单个源文件复制成一个指定文件名的 ...
- linux cp -r 参数,Linux系统中cp命令的参数及用法详解
Linux系统中cp命令主要是用来复制文件或者目录.下面由学习啦小编为大家整理了Linux系统中cp命令的参数及用法详解的相关知识,希望对大家有帮助! Linux系统中cp命令的参数及用法详解:参数说 ...
- Linux C实现cp命令
Linux C实现cp命令 1.分析 2.代码 3.可以改进的地方 1.分析 cp命令本质上是把一个文件的内容复制到另一个文件里面,非快捷方式(软链接),那么很容易想到的就是文件IO,我们需要一直从源 ...
- Linux 常用命令学习——cp命令、cat命令和more 命令、less命令
cp 命令 cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录.它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下.cp命令还支持同时复制多个文件,当一次复制多个文 ...
- linux cp命令忽略覆盖,linux cp:Linux怎么取消cp命令覆盖文件提示
今天来聊聊一篇关于linux cp:Linux怎么取消cp命令覆盖文件提示的文章,现在就为大家来简单介绍下linux cp:Linux怎么取消cp命令覆盖文件提示,希望对各位小伙伴们有所帮助. 可以试 ...
- linux命令cp命令行参数,linux命令之cp命令参数及用法详解
cp (复制档案或目录) [root@linux ~]# cp [-adfilprsu] 来源档(source) 目的檔(destination) [root@linux ~]# cp [option ...
- Linux文件目录操作命令-cp命令
一.cp命令 cp命令用来复制文件或者目录,是Linux系统中最常用的命令之一.一般情况下,shell会设置一个别名,在命令行下复制文件时,如果目标文件已经存在,就会询问是否覆盖,不管你是否使用-i参 ...
- 在linux终端显示cp命令复制文件时的速度
cp命令显示拷贝的速度 在window平台上复制一个文件时可以即时查看文件复制时的速度. 在linux平台上查看了cp命令的参数,没有相关参数可以实现此功能,所以需要借助工具来实现此功能. 我平时用的 ...
- linux cp命令 强制覆盖,Linux中使用cp命令进行强制覆盖的方法
cp在拷贝时,如果遇到相同的文件名的文件,就会不断询问是否覆盖,让你输入yes or no .为什么呢?这是为了linux为了安全考虑,在cp命令上用了别名.也就是你输入只是输入cp命令时,其实系统是 ...
最新文章
- 一次失败的尝试:Ubuntu 故障修复
- html宽度自适应怎么调整li超出隐藏,HTML篇之CSS样式——div ul li 嵌套后解决高度自适应方法...
- FastReport使用
- boost::make_filtered_graph用法的测试程序
- 服务器协议热更_汽车和电话的开放协议,以及更多开放源新闻
- NexentaStor iSCSI/ NAS 存储服务器软件图解教程(3)——NMV快速上手指南Part2
- MySql数据导入导出及解决ERROR2006(MySQL server has gone away)错误
- 两台具有独立操作系统的计算机,第1章计算机网络习题与思考题参考答案
- .NET 应用从 Visual Studio 迁移到 Eclipse
- 【LeetCode】【字符串】题号:*541. 反转字符串 II
- Centos yum安装snmp
- EQ一卡通踩过的坑,解决加载不到动态库,输出数据到led屏乱码问题
- 图片颜色和相机的一些基本知识
- 【网络安全】GitHub项目监控,teemo子域名查询
- Python的mpl_finance模块从2020年已经提醒弃用,新mplfinance模块详解(二)
- 2022年全球与中国智能白板市场现状及未来发展趋势
- keras中的目标函数和优化函数
- 原装驱动后声卡没声音【解决办法】
- 机械制造作业考研题目答案分享——工件的定位
- Win7 x64动态开启DSE