cp命令:复制文件和目录

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
└── test5

7 directories, 30 files

#提示:

  使用-a参数也可以达到相同的效果,因为-a参数相当于“dpr” 三个参数

你可能感兴趣的:(linux相关,linux)