赞
踩
文章目录
在日常工作中,复制粘贴的时常会需要用到,linux里也有自己的拷贝文件或者目录的命令,下面一起来看看,这个命令如何使用,并且有什么参数。
cp命令来自于英文词组copy的缩写,用于将一个或者多个文件或目录复制到指定位置,常用于文件的备份工作。若要拷贝目录文件,则需要加上-r的参数进行递归操作,否则会出现报错的情况,而-f参数则是用于当目标文件已存在时会直接覆盖,不在询问,这两个参数尤为重要。
语法: cp 【参数】源文件 目标文件
- [root@localhost ~]# cp --help
- 用法:cp [选项]... [-T] 源文件 目标文件
- 或:cp [选项]... 源文件... 目录
- 或:cp [选项]... -t 目录 源文件...
-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.txt
-
- 2 directories, 11 files
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'
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
这个方式相当于是给源文件创建一个他的链接文件
- [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
使用-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~
- [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
先给文件设置一个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的方式一样。如果觉得内容还行的,可以点个赞支持一下!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。