cp

      复制文件,可以将一个文件复制到另外一个地方,也可以将多个文件复制到目录。

      此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。


1、语法

      cp  [option] [-T]  src  dst

      cp  [option] src  dir

      cp  [option] -t  dir  src

 

2、选项列表


选项



说明



--help



显示帮助文档



--version



显示命令版本



-a | --archive



等价于“-dR --preserve=all”



--backup[=CONTROL]



为每一个存在的目标文件创建备份



-b



类似“--backup”,但是没有参数



--copy-contents



递归时复制特殊文件的内容



-d



等价于“--no-dereference    --preserve=links”



-f | --force



强制执行



-i | --interactive



交互模式,覆盖文件之前询问



-H



遵循src中的命令行符号链接。



-l | --link



创建链接,不复制



-L | --dereference



始终遵循src中的符号链接



-n | --no-clobber



不覆盖已经存在的文件



-R | -r



递归模式,复制子目录



-s | --symbolic-link



创建符号链接,不复制



-P | --no-dereference



不遵循src中的符号链接



-p



等价于“--preserve=mode”



--preserve[=ATTR_LIST]



保留指定的属性(默认:模式、所有权、时间戳),如果可能的话,其他属性:上下文、链接、xattr、all



-c



等价于“--preserve=context”



--no-preserve=ATTR_LIST



不保留指定的属性



--parents



使用目录下的完整源文件名



-R | -r | --recursive



递归复制子目录



--reflink[=WHEN]



控制拷贝



--remove-destination



在尝试打开每个现有目标文件之前移动它(与“--force”相反)



--sparse=WHEN



控制稀疏文件的创建



--strip-trailing-slashes



从每个源参数中移除任何尾随斜线。



-s | --symbolic-link



创建符号链接,不复制



-S | --suffix=SUFFIX



重写通常的备份后缀



-t | --target-directory=DIRECTORY



将所有源参数复制到DIRECTORY中。



-T | --no-target-directory



将目标文件当做普通文件



-t | --target-directory=dir



复制所有的源文件到目录



-u | --update



以更新的方式复制



-v | --verbose



显示详细执行过程



-x | --one-file-system



保持在这个文件系统上



-Z | --context=CONTEXT



将副本的安全上下文设置为上下文



3、说明

      当“--reflink[=always]”被指定时,执行一个轻量级副本,其中数据块仅在修改时被复制。如果这是不可能的,复制失败,或者如果“--reflink=auto “被指定,则返回到标准副本。

     备份后缀为‘~’,除非设置“--suffix “或”SIMPLE_BACKUP_SUFFIX“。版本控制方法可以通过”--backup“选项或通过VERSION_CONTROL环境变量来选择。以下是这些值:

     1)none, off,从不备份,即使指定了“--backup“。

     2)numbered, t,数字版本控制。

     3)existing, nil,如果有数字备份,那么就使用数字备份,否则使用简单备份。

     4)simple, never,简单备份。

作为特例,当提供强制和备份选项时,cp对源进行备份,src和dst名字相同,都是常规文件。


4、实例

     1)复制整个目录


​[root@192 weijie]# cp -r test01/ test03/            //​​使用​​-r​​选项,递归方式复制

​ [root@192 weijie]# ls test03

​1.c  1.c~  2.c  3.c​


     2)使用“-t”选项,将多个文件复制到目录


​[root@192 weijie]# cp -t test01 1.c 2.c 3.c         //​​复制​​3​​个文件到​​test01​​目录

​cp​​​​:是否覆盖​​​​"test01/1.c"​​​​?​​​​y​

​[root@192 weijie]# ls test01

​1.c  1.c~  2.c  3.c​


     3)创建链接 


​[root@localhost wj]# cp -s 3.c 4.c                    //​​创建符号链接,并不是复制

​[root@localhost wj]# ls -l 4.c                        //​​查看内容,该文件是一个符号链接

​lrwxrwxrwx 1 root root 3 10​​​​月​​​​ 30 08:09 4.c -> 3.c​

​[root@localhost wj]# ​




做了一个Linux学习的平台,目前出来一个雏形,各位可以参考使用

链接:https://pan.baidu.com/s/1GOLVU2CbpBNGtunztVpaCQ  密码:n7bk

Linux基础命令---cp_复制