Linux基础命令-cp拷贝文件

Linux文件管理命令(3)-mv改动文件_Linux学习中的博客-CSDN博客

Linux管理文件命令(2)rm命令-删除文件或者目录_Linux学习中的博客-CSDN博客

文章目录

前言

一、cp命令介绍

二、语法及常用参数

2.1 先用help查看命令语法

2.2 常用参数

 三、参考实例

3.1 复制源文件到其他目录

3.2 复制目录到其他目录,并修改目录名称

3.3 为源文件创建快捷方式

3.4 覆盖前将同名文件备份

3.5 给源文件建立硬链接

3.6 保留源文件的所有属性

总结

前言

        在日常工作中,复制粘贴的时常会需要用到,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 test
cp:是否覆盖"test/1.txt"? [root@localhost data]# alias -p | grep cp
alias 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.txt
drwxr-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.txt
lrwxrwxrwx. 1 root root  5 2月  14 15:36 5.txt -> 1.txt

3.4 覆盖前将同名文件备份

使用-b参数给相同名字的文件提前创建一个备份文件,使其不被覆盖。

[root@localhost data]# cp -b 1.txt test
cp:是否覆盖"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.txt
lrwxrwxrwx. 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的方式一样。如果觉得内容还行的,可以点个赞支持一下!

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部