cp

【功能说明】:

cp - copy files and directories           #复制文件和目录

    cp命令用于复制文件和目录;如果复制单个文件或多个文件到指定目录时,目标目录不存在的话,则报错;目标目录存在且不和源文件名称相同,则文件复制成功;目标目录存在且和源文件名称相同,则文件复制失败,此情况下使用cp命令全路径</bin/cp>或者在cp命令前加“\<\cp>复制时,则文件复制成功,注意,是无任何提醒的强制覆盖目标和源相同名称的文件及目录

    CopySOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.

  将SOURCE复制到DEST,或将多个SOURCE复制到DIRECTORY。

【语法格式】:

cp [OPTION]... [-T] SOURCE DEST

cp [选项]... [-T] 源文件 目标文件

cp [OPTION]... SOURCE... DIRECTORY

cp [选项]... 源文件... 目录

cp [OPTION]... -t DIRECTORY SOURCE...

cp [选项]... -t 目录 源文件...

【选项参数】:

选项

说明

-a, --archive

等同于同时使用 -pdr 参数

-d, --no-dereference

若源文件为链接文件(link file,则复制链接文件属性而非档案本身;

-f, --force

强制,若目标档案已经存在且无法开启,则移除后在尝试;

-i, --interactive

若目标文件已经存在时,在覆盖前会先询问;

-l, --link

对源文件建立硬链接,而非复制过去;

-p,--preserve[=ATTR_LIST]

连同档案的属性一起复制过去,而非使用默认属性;

-R, -r, --recursive

递归处理,将指定目录下的文件与子目录一并处理,用于复制目录;

--sparse=<WHEN/使用时机>

设置存储稀疏文件(Sparse File)的时机;稀疏文件是一种内含大量连续0字节的文件,这种现象称之为坑洞(Holes),许多的二进制文件都具有这种特性;假使文件系统有支持这种特性,这些坑洞将不会占用大量的存储快,则对节省存放空间和提高系统性能都有助益;WHEN设置为“auto”,则来源文件若是稀疏文件,目的文件也会是稀疏文件,这是cp命令的默认值;WHEN设置为“always”,则目的文件将一概存储成稀疏文件;WHEN设置为“never”,则目的文件将不会存储成稀疏文件;

-x,  --one-file-system

复制的文件或目录存放的文件系统,必须与cp命令执行时所处的文件系统相同,否则不予以复制;即不处理在其它分区的文件;

-s, --symbolic-link

对来源文件建立符号链接<软链接>,而非复制文件,必须使用绝对路径,否则报错;

-u, --update

若目标文件存在,则目标文件比源文件旧时才复制;

-v, --verbose

显示命令执行输出的过程

--help

显示命令的帮助信息并退出

--version

输出命令的版本信息并退出

【实践操作】:

1-a 参数实例

[root@C66-192168002225 sysconfig]# ll crond 
-rw-------. 1 root root 110 Mar  8 10:34 crond
[root@C66-192168002225 sysconfig]# cp -a ./crond/home/tangmeng/
[root@C66-192168002225 sysconfig]# ll/home/tangmeng/crond 
-rw-------. 1 root root 110 Mar  8 10:34 /home/tangmeng/crond

2-d 参数实例

[root@C66-192168002225 etc]# ll system-release
lrwxrwxrwx. 1 root root 14 Oct 25 21:56 system-release-> centos-release  
[root@C66-192168002225 etc]# cp -d ./system-release /home/tangmeng/
[root@C66-192168002225 etc]# ll /home/tangmeng/system-release
lrwxrwxrwx. 1 root root 14 Mar 15 11:40  ->

3-f 参数实例

[root@C66-192168002225 tangmeng]# cat test
[root@C66-192168002225 tangmeng]# cat /sysconfig/kernel
# UPDATEDEFAULT specifies if new-kernel-pkg shouldmake
# new kernels the default
UPDATEDEFAULT=yes
 
# DEFAULTKERNEL specifies the default kernelpackage type
DEFAULTKERNEL=kernel
[root@C66-192168002225 tangmeng]# 
[root@C66-192168002225 tangmeng]# cat test
# UPDATEDEFAULT specifies if new-kernel-pkg shouldmake
# new kernels the default
UPDATEDEFAULT=yes
 
# DEFAULTKERNEL specifies the default kernelpackage type
DEFAULTKERNEL=kernel

4-i 参数实例

[root@C66-192168002225 sysconfig]# ll iptables && ll /home/tangmeng/iptables
-rw-------. 1 root root 476 Mar  8 10:34 iptables
-rw-------. 1 root root 476 Mar 15 13:08/home/tangmeng/iptables
[root@C66-192168002225 sysconfig]# cp -i iptables/home/tangmeng/           
cp: overwrite `/home/tangmeng/iptables'? y       
[root@C66-192168002225 sysconfig]# ll iptables && ll /home/tangmeng/iptables
-rw-------. 1 root root 476 Mar  8 10:34 iptables
-rw-------. 1 root root 476 Mar 15 13:09/home/tangmeng/iptables

5-l 参数实例

[root@C66-192168002225 tangmeng]# cp -l /sysconfig/authconfig /home/tangmeng/
[root@C66-192168002225 tangmeng]# ll
total 24
-rw-r--r--. 1 root root   6 Mar 15 14:05 2.txt

-rw-------. 1 root root 110 Mar  8 10:34 crond
[root@C66-192168002225 tangmeng]# cp -l /sysconfig/authconfig /home/
[root@C66-192168002225 tangmeng]# ll /home/
total 12
           
-rw-r--r--. 1 root root  180 Mar 15 10:59 kernel
drwxr-xr-x. 2 root root 4096 Mar 15 14:42 tangmeng

6-p 参数实例

[root@C66-192168002225 tangmeng]# ll /sysconfig/cpuspeed

[root@C66-192168002225 tangmeng]#  cp -p /sysconfig/cpuspeed /home/tangmeng/
[root@C66-192168002225 tangmeng]# pwd
/home/tangmeng
[root@C66-192168002225 tangmeng]# ll cpuspeed

7-R,-r 参数实例

[root@C66-192168002225 sysconfig]# ls -l
total 36
-rw-r--r--. 1 root root   21 Mar 8 10:34 clock
-rw-r--r--. 1 root root 2651 Mar  8 10:34 cpuspeed
-rw-------. 1 root root  110 Mar 8 10:34 crond
-rw-r--r--. 1 root root   25 Mar 8 10:34 grub
[root@C66-192168002225 sysconfig]# 
[root@C66-192168002225 sysconfig]# ll /home/tangmeng/
total 36
-rw-r--r--. 1 root root   21 Mar 15 15:08 clock
-rw-r--r--. 1 root root 2651 Mar 15 15:08 cpuspeed
-rw-------. 1 root root  110 Mar 15 15:08 crond
-rw-r--r--. 1 root root   25 Mar 15 15:08 grub
[root@C66-192168002225 sysconfig]# rm -fr /home/tangmeng/*
[root@C66-192168002225 sysconfig]# ll /home/tangmeng/
total 0
[root@C66-192168002225 sysconfig]#      
[root@C66-192168002225 sysconfig]# ll /home/tangmeng/
total 36
-rw-r--r--. 1 root root   21 Mar 15 15:09 clock
-rw-r--r--. 1 root root 2651 Mar 15 15:09 cpuspeed
-rw-------. 1 root root  110 Mar 15 15:09 crond
-rw-r--r--. 1 root root   25 Mar 15 15:09 grub

8-s 参数实例

[root@C66-192168002225 sysconfig]# pwd
/sysconfig
[root@C66-192168002225 sysconfig]#        
cp: `/home/tangmeng/grub': can make relativesymbolic links only in current directory
[root@C66-192168002225 sysconfig]# 
[root@C66-192168002225 sysconfig]# ll/home/tangmeng/
total 32
-rw-r--r--. 1 root root   21 Mar 15 15:09 clock
-rw-r--r--. 1 root root 2651 Mar 15 15:09 cpuspeed
-rw-------. 1 root root  110 Mar 15 15:09 crond
lrwxrwxrwx. 1 root root   15 Mar 15 15:15 grub ->/sysconfig/grub

9-u 参数实例

[root@C66-192168002225 sysconfig]# ll /sysconfig/clock
-rw-r--r--. 1 root root 21 Mar  8 10:34 /sysconfig/clock
[root@C66-192168002225 sysconfig]# ll /home/tangmeng/clock
-rw-r--r--. 1 root root 21 Mar 15 15:09/home/tangmeng/clock
[root@C66-192168002225 sysconfig]# cp -u /home/tangmeng/clock ./ 
cp: overwrite `./clock'? y
[root@C66-192168002225 sysconfig]# ll /sysconfig/clock
-rw-r--r--. 1 root root 21 Mar 15 15:26 /sysconfig/clock

10-v 参数实例

[root@C66-192168002225 sysconfig]# \cp -uv /sysconfig/clock /home/tangmeng/
`/sysconfig/clock' -> `/home/tangmeng/clock'

11--version 参数实例

[root@C66-192168002225 sysconfig]# cp --version
cp (GNU coreutils) 8.4                                  
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later<http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change andredistribute it.
There is NO WARRANTY, to the extent permitted bylaw.
 
Written by Torbjrn Granlund, David MacKenzie, andJim Meyering.

12--help 参数实例

[root@C66-192168002225 sysconfig]# cp --help
Usage: cp [OPTION]... [-T] SOURCE DEST
  or:  cp [OPTION]... SOURCE... DIRECTORY
  or:  cp [OPTION]... -t DIRECTORY SOURCE...
Copy SOURCE to DEST, or multiple SOURCE(s) toDIRECTORY.
 
Mandatory arguments to long options are mandatoryfor short options too.
  -a,--archive                same as -dR--preserve=all
     --backup[=CONTROL]       make abackup of each existing destination file
 
…… 此处省略若干字符
 
As a special case, cp makes a backup of SOURCEwhen the force and backup
options are given and SOURCE and DEST are the samename for an existing,
regular file.
 
Report cp bugs to bug-coreutils@gnu.org
GNU coreutils home page:<http://www.gnu.org/software/coreutils/>
General help using GNU software:<http://www.gnu.org/gethelp/>
For complete documentation, run: info coreutils'cp invocation'