深入解析Linux 常用命令--cp

来源:互联网 发布:暖气片专用晾衣架 淘宝 编辑:程序博客网 时间:2024/05/22 08:21

1.概述

cp常用于复制文件或目录。

2.格式

cp命令复制时,有如下几种组合:

  • cp [OPTION] 源文件 目标文件
  • cp [OPTION] 源文件 目标路径
  • cp [OPTION] 源文件 目标路径/目标文件
  • cp [OPTION] 源路径 目标路径
  • cp [OPTION] 源路径 目标路径

3.强制复制

cp -f SRC DEST,把SRC复制到DEST。当DEST文件存在时,将去先移除DEST,再把SRC复制到DEST。

[root@smart linux]# cp b.txt  k.txt[root@smart linux]# cp b.txt  k.txtcp: overwrite `k.txt'? y   [root@smart linux]# cp -f b.txt  k.txtcp: overwrite `k.txt'? y[root@smart linux]# \cp -f b.txt  k.txt[root@smart linux]# alias cp='cp'[root@smart linux]# cp -r b.txt k.txt

4.替换前交互询问

cp -i

[root@smart Desktop]# cp k.txt s.txt[root@smart Desktop]# cp -i k.txt s.txtcp: overwrite `s.txt'? y

此处要注意,默认情况下,Linux系统一般都会alias cp为交互模式,可以查看~/.bashrc。

5.有重复文件不复制

cp -n

[root@smart Desktop]# cp  k.txt n.txtcp: overwrite `n.txt'? n[root@smart Desktop]# cp -n k.txt n.txt[root@smart Desktop]# 

6.复制文件夹及子文件

cp -R/-r

[root@smart linux]# cp  abcde/  sscp: omitting directory `abcde/'[root@smart linux]# cp -r  abcde/  ss[root@smart linux]# lsa  abcde  a.txt  b  b.c  b.c~  b.txt  c  d  e  f  g  h  k.txt  ss

7.显示复制详细信息

cp -v

[root@smart linux]# cp -v k.txt s.txt`k.txt' -> `s.txt'

8.注意事项

由于在linux下一切皆文件,因此linux命令行下无法区分目标路径or目标文件。

对于命令“ cp A B”注意下面几个区别:

B不存在 B存在,且为文件 B存在,且为目录 A为文件 结果:同目录下出现B文件,内容同A 结果:直接复制失败,若加-r选项,同目录下不新增文件,B的旧内容将被覆盖为A文件内容 A为目录 结果:直接复制失败,若加上-r选项,同目录下将会产生B目录,目录下内容同A 结果:直接复制失败,加-r选项也无法复制。
1.A为文件,B不存在,结果同目录下出现B文件,内容同A:[root@smart test]# ls -pA[root@smart test]# cp A B[root@smart test]# ls -pA  B2.A为文件,B存在,且为文件,结果直接复制失败,若加-r选项,同目录下不新增文件,B的旧内容将被覆盖为A文件内容[root@smart test]# cp -n A B[root@smart test]# lltotal 4-rw-r--r--. 1 root root 0 Nov  5 21:51 A-rw-r--r--. 1 root root 4 Nov  5 22:03 B[root@smart test]# cp -r A Bcp: overwrite `B'? y[root@smart test]# lltotal 0-rw-r--r--. 1 root root 0 Nov  5 21:51 A-rw-r--r--. 1 root root 0 Nov  5 22:05 B3.A为文件,B存在,B为目录。结果A将复制到B文件夹下,文件名为A[root@smart test]# ls -lRt.:total 4drwxr-xr-x. 2 root root 4096 Nov  5 22:06 B-rw-r--r--. 1 root root    0 Nov  5 21:51 A./B:total 0-rw-r--r--. 1 root root 0 Nov  5 22:06 A[root@smart test]# rm -rf B/A[root@smart test]# lsA  B[root@smart test]# ls -lRt.:total 4drwxr-xr-x. 2 root root 4096 Nov  5 22:07 B-rw-r--r--. 1 root root    0 Nov  5 21:51 A./B:total 0[root@smart test]# cp A B[root@smart test]# ls -lRt.:total 4drwxr-xr-x. 2 root root 4096 Nov  5 22:07 B-rw-r--r--. 1 root root    0 Nov  5 21:51 A./B:total 0-rw-r--r--. 1 root root 0 Nov  5 22:07 A4.A为目录,B不存在。结果:直接复制失败,若加上-r选项,同目录下将会产生B目录,目录下内容同A[root@smart test]# cp A Bcp: omitting directory `A'[root@smart test]# cp -r A B[root@smart test]# lsA  B[root@smart test]# ls -pA/  B/5.A为目录,B为文件,直接复制失败,加-r选项也无法复制。[root@smart test]# ls -pA/  B[root@smart test]# cp A Bcp: omitting directory `A'[root@smart test]# cp -r A Bcp: cannot overwrite non-directory `B' with directory `A'6.A、B均为目录,且B存在[root@smart test]# lsA  B[root@smart test]# ls -pA/  B/[root@smart test]# cp A Bcp: omitting directory `A'[root@smart test]# cp -r A B[root@smart test]# ls A  B

Enjoy!


2017/11/10

原创粉丝点击