Linux基础命令-cp拷贝文件
文章目录
前言
在日常工作中,复制粘贴的时常会需要用到,linux里也有自己的拷贝文件或者目录的命令,下面一起来看看,这个命令如何使用,并且有什么参数。
一、cp命令介绍
cp命令来自于英文词组copy的缩写,用于将一个或者多个文件或目录复制到指定位置,常用于文件的备份工作。若要拷贝目录文件,则需要加上-r的参数进行递归操作,否则会出现报错的情况,而-f参数则是用于当目标文件已存在时会直接覆盖,不在询问,这两个参数尤为重要。
二、语法及常用参数
2.1 先用help查看命令语法
语法: cp 【参数】源文件 目标文件
[root@localhost ~]# cp --help用法:cp [选项]... [-T] 源文件 目标文件 或:cp [选项]... 源文件... 目录 或:cp [选项]... -t 目录 源文件...
2.2 常用参数
-f | 若目标文件已存在,则会直接覆盖原文件 |
-i | 若目标文件已存在,则会询问是否覆盖 |
p | 保留源文件或目录的所有属性 |
-r | 递归复制文件和目录 |
d | 当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录 |
-l | 对源文件建立硬连接,而非复制文件 |
-s | 对源文件建立符号连接,而非复制文件 |
-b | 覆盖已存在的文件目标前将目标文件备份 |
-v | 详细显示cp命令执行的操作过程 |
-a | 等价于“pdr”选项 |
三、参考实例
用来测试命令的文件及目录
[root@localhost data]# tree -L 2.├── 1.txt├── 2.txt├── 3.txt├── 4.txt├── test│ ├── 1.txt│ ├── a.txt│ ├── b.txt│ └── c.txt└── test1 ├── b.txt ├── c.txt └── d.txt2 directories, 11 files
3.1 复制源文件到其他目录
cp拷贝内容到目录下,目录刚好有同名的文件,会提示是否要覆盖同名的文件,这个是因为敲cp命令默认是cp -i ,这里到alias -p 看下。
[root@localhost data]# cp 1.txt testcp:是否覆盖"test/1.txt"? [root@localhost data]# alias -p | grep cpalias cp='cp -i'
3.2 复制目录到其他目录,并修改目录名称
cp复制目录时,是需要加上-r参数作为递归才可以执行成功。
[root@localhost data]# cp -r test1 test/testdir[root@localhost data]# ll test总用量 0-rw-r--r--. 1 root root 0 2月 14 15:30 1.txt-rw-r--r--. 1 root root 0 2月 14 15:24 a.txt-rw-r--r--. 1 root root 0 2月 14 15:24 b.txt-rw-r--r--. 1 root root 0 2月 14 15:24 c.txtdrwxr-xr-x. 2 root root 45 2月 14 15:32 testdir
3.3 为源文件创建快捷方式
这个方式相当于是给源文件创建一个他的链接文件
[root@localhost data]# cp -s 1.txt 5.txt[root@localhost data]# ll总用量 0-rw-r--r--. 1 root root 0 2月 14 15:24 1.txt-rw-r--r--. 1 root root 0 2月 14 15:24 2.txt-rw-r--r--. 1 root root 0 2月 14 15:24 3.txt-rw-r--r--. 1 root root 0 2月 14 15:24 4.txtlrwxrwxrwx. 1 root root 5 2月 14 15:36 5.txt -> 1.txt
3.4 覆盖前将同名文件备份
使用-b参数给相同名字的文件提前创建一个备份文件,使其不被覆盖。
[root@localhost data]# cp -b 1.txt testcp:是否覆盖"test/1.txt"? y[root@localhost data]# ll test/1*-rw-r--r--. 1 root root 0 2月 14 15:38 test/1.txt-rw-r--r--. 1 root root 0 2月 14 15:30 test/1.txt~
3.5 给源文件建立硬链接
[root@localhost data]# cp -l 1.txt 6.txt[root@localhost data]# ll总用量 0-rw-r--r--. 2 root root 0 2月 14 15:24 1.txt-rw-r--r--. 1 root root 0 2月 14 15:24 2.txt-rw-r--r--. 1 root root 0 2月 14 15:24 3.txt-rw-r--r--. 1 root root 0 2月 14 15:24 4.txtlrwxrwxrwx. 1 root root 5 2月 14 15:36 5.txt -> 1.txt-rw-r--r--. 2 root root 0 2月 14 15:24 6.txt
3.6 保留源文件的所有属性
先给文件设置一个777权限,用-p参数保留文件的权限属性一并复制到test的目录中,可以用ll查看目录文件的权限属性和源文件是一样的,都是777权限;再把同文件(已修改777权限的)不加参数的复制到test1的目录中,查看文件的权限是(644)权限。
[root@localhost data]# chmod 777 2.txt [root@localhost data]# ll 2.txt -rwxrwxrwx. 1 root root 0 2月 14 15:24 2.txt[root@localhost data]# cp -pv 2.txt test"2.txt" -> "test/2.txt"[root@localhost data]# ll test/1.txt 1.txt~ 2.txt a.txt b.txt c.txt testdir/ [root@localhost data]# ll test/2.txt -rwxrwxrwx. 1 root root 0 2月 14 15:24 test/2.txt[root@localhost data]# cp 2.txt test1/[root@localhost data]# ll test1/2.txt -rwxr-xr-x. 1 root root 0 2月 14 15:43 test1/2.txt
总结
cp命令一样是个频繁使用的命令,不管是用作备份、还是复制文件信息,即保留了源文件,在想粘贴的地方又多了个目标文件;还可以用来设置源文件的硬链接和软连接,这点和ln的方式一样。如果觉得内容还行的,可以点个赞支持一下!
来源地址:https://blog.csdn.net/rhn_111/article/details/129027470
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341