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
 └── test57 directories, 30 files
#提示:
  使用-a参数也可以达到相同的效果,因为-a参数相当于“dpr” 三个参数